Python

    [Django] django-debug-toolbar 안보임 오류 해결

    [Django] django-debug-toolbar 안보임 오류 해결

    degub-toolbar가 왜 안 나오는지 도저히 모르겠다면 꼭 해보세요. import mimetypes mimetypes.add_type("application/javascript", ".js", True) 위 코드를 settings.py가 있는 폴더의 urls.py에 추가해보자. from django.contrib import admin from django.conf import settings from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), ... ] import mimetypes mimetypes.add_type("application/javascript", ".js", True) if se..

    [Python] Decorator (데코레이터)

    데코레이터에 대해 알기전에 아래 두 포스팅을 보고 오면 이해가 빠릅니다. [Python] First-Class Function (일급 함수) 프로그래밍 언어가 함수를 일급 객체로 취급하는 경우 일급 함수를 지원한다고 한다. Python 은 일급 함수를 지원한다. (Java의 함수는 1급 객체가 아니다. Kotlin의 함수는 1급 객체라고 한다.) 일급 hyeo-noo.tistory.com [Python] Closure (클로저) 클로저를 이해하기 위해서는 일급 함수, 일급 객체에 대한 이해가 필요하다. 만약 일급함수, 일급객체를 모른다면 아래 포스팅이 도움이 될 수 있다. [Python] First-Class Function (일급 함수) 프로그래 hyeo-noo.tistory.com 데코레이터는 크게 ..

    [Python] Closure (클로저)

    클로저를 이해하기 위해서는 일급 함수, 일급 객체에 대한 이해가 필요하다. 만약 일급함수, 일급객체를 모른다면 아래 포스팅이 도움이 될 수 있다. [Python] First-Class Function (일급 함수) 프로그래밍 언어가 함수를 일급 객체로 취급하는 경우 일급 함수를 지원한다고 한다. Python 은 일급 함수를 지원한다. (Java의 함수는 1급 객체가 아니다. Kotlin의 함수는 1급 객체라고 한다.) 일급 hyeo-noo.tistory.com 클로저란? 클로저는 외부 함수에 접근할 수 있는 내부 함수 혹은 이러한 원리를 칭하는 용어이다. 외부 함수는 외부 함수 자신의 지역변수를 사용하는 내부함수가 소멸될때까지 소멸되지 않는다. 예를 들어 임의의 A함수 내부에 다른 B함수가 있다면 B함수..

    [Python] First-Class Function (일급 함수)

    프로그래밍 언어가 함수를 일급 객체로 취급하는 경우 일급 함수를 지원한다고 한다. Python 은 일급 함수를 지원한다. (Java의 함수는 1급 객체가 아니다. Kotlin의 함수는 1급 객체라고 한다.) 일급 객체(First-Class Citizen)란? 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. 1. 변수나 데이터 구조에 할당할 수 있다. 2. 객체의 인자로 넘길 수 있다. 3. 객체의 리턴 값으로 리턴이 가능해야 한다. 위 3가지 조건을 만족하면 1급객체라고 할 수 있다. 일급 함수의 속성 함수는 Object 유형의 인스턴스이다. 함수를 변수에 저장할 수 있다. 함수를 다른 함수에 매개변수로 전달할 수 있다. 함수에서 함수를 반환할 수 있다. List, HashT..

    [Djnago] Django 이메일 인증하기(Thread)

    비밀번호를 찾기 위해서 가입 했던 이메일로 인증번호을 보내는 기능에 대한 설명 ## users/apis.py class SendPasswordEmailApi(PublicApiMixin, APIView): def post(self, request, *args, **kwargs): """ 비밀번호 변경 인증 코드 발송 """ target_username = request.data.get('username', '') target_email = request.data.get('email', '') target_user = User.objects.filter( username=target_username, email=target_email ) if target_user.exists(): auth_string = ..

    [Django] ORM 쿼리 최적화 (select_related, annotate, aggregates)

    [Django] ORM 쿼리 최적화 (select_related, annotate, aggregates)

    Django는 처음엔 배우기 쉬웠는데 배우면 배울수록 알아야할게 많아진다... 기초만 보고 단순한 웹 사이트를 만드는데는 장고만큼 쉬운게 없을 것 같다.. 관리자 페이지도 있고, 기본적인 유저 모델이나 인증 시스템이 만들어져 있기 때문에. 그런데 객체지향을 제대로 이해해야지만 장고 프레임워크도 이해할 수 있을 것 같다. 객체지향 모델의 동작 방식이 이해가 되면 객체의 메소드들을 오버라이딩해서 커스터마이징 해야하고.. 인증 방식도 커스터마이징 해야하고.. 할게 많음 그러다 django_rest_framework를 만나면 새로운 프레임워크를 처음부터 배우는것같은 느낌이 든다.. rest_framework에서 serializer를 처음 만났을때 엄청난 거부감이 들면서 왜 써야하지 싶었는데.. 사실 아직도 정확..