DevOps/Django
[Django] F
F란? Django에서 제공하는 F 객체는 데이터베이스 필드의 값을 참조하고 조작하는 데 사용되는 객체이다. F 객체를 사용하면 데이터베이스 쿼리를 통해 필드 값을 직접 업데이트 할 수 있다. F 객체를 사용하면 데이터베이스에 직접 쿼리를 보내지 않고도 필드 값을 업데이트할 수 있으므로, 데이터의 일관성을 유지하면서 성능을 향상시킬 수 있다. 예시 from django.db.models import F class CartListCreateAPIView(ListCreateAPIView): """ 장바구니 생성 및 리스트 """ queryset = Cart.objects.all() serializer_class = CartSerializer def get_queryset(self): user = self.r..
[Django] django-pydenticon - 디폴트 프로필
https://django-pydenticon.readthedocs.io/en/0.2/installation.html Installation — Django Pydenticon 0.2 documentation Configuring your Django installation Once Django Pydenticon has been installed, you need to perform the following steps in order to make it available inside of your Django project: Edit your project’s settings configuration file (settings.py), and update django-pydenticon.readthed..
![[DRF] 이미지 URL 호스트, 포트 제거](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvv1iO%2FbtrVUrnTJbM%2F0V2pl50k0aer8JKmoVFWp0%2Fimg.png)
[DRF] 이미지 URL 호스트, 포트 제거
Generics View를 이용할 때 image url에 호스트명이 추가되어 나타났다. /media/board/~~로 시작하게 하기위해서 아래와 같이 serializer를 변경하면 된다. 1. 변경전 # serializers.py class PostSerializer(serializers.ModelSerializer): class Meta: model = Post fields = '__all__' 2. 변경후 # serializers.py class PostSerializer(serializers.ModelSerializer): image = serializers.SerializerMethodField() class Meta: model = Post fields ='__all__' def get_imag..
[DRF] Swagger 사용하기
https://drf-yasg.readthedocs.io/en/stable/readme.html drf-yasg - Yet another Swagger generator — drf-yasg 1.20.1 documentation Since the schema does not usually change during the lifetime of the django process, there is out of the box support for caching the schema view in-memory, with some sane defaults: caching is enabled by the cache_page decorator, using the default Django cac drf-yasg.readt..
[Django] 프로젝트 세팅 ( + React )
1. initial setting 1-1. 가상환경 python -m venv venv를 이용하여 가상환경으로 만들기. 1-2. git init 적용 git init을 이용하여 git 활성화 .gitignore 생성하여 밑에 있는 url 복사. https://www.toptal.com/developers/gitignore/api/django 1-3. backend - django 설치. pip install django 명령어를 이용한 django 설치. python -m django startproject python manage.py migrate python manage.py createsuperuser settigs.py 설정 # react에서 관리하는 파일 제외하고 css파일 등을 관리. STA..
![[Django] SENDGRID를 이용한 메일 보내기.](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnVWvU%2FbtrQUAQrOqH%2Fukk2f9s7dkREJq7hax9C6K%2Fimg.png)
[Django] SENDGRID를 이용한 메일 보내기.
1. API키 생성 https://app.sendgrid.com/settings/api_keys SendGrid app.sendgrid.com 위 사이트로 들어가서 API키를 생성한다. 2. 발신자 인증 https://app.sendgrid.com/settings/sender_auth SendGrid app.sendgrid.com Sender Authentication(발신자 인증)에 들어가서 Verify a Single Sender(단일 발신자 확인)을 인증한다. 3. Django 프로젝트에 적용하기. 3-1. 환경변수 설정 및 확인 powershell에서 환경변수로 SENDGRID_API_KEY를 등록하기 위해 $Env:SENDGRID_API_KEY = "~~~"를 해준다. 장고 shell에 들어가 ..
[Django] HTTP 상태코드 응답
대표적인 상태 코드 코드 설명 200번대 성공 200 서버가 요청을 잘 처리했다. 201 작성완료. 서버가 요청을 접수하고, 새 리소스를 작성했다. 300번대 추가 조치가 필요하다. 301 영구 이동, 요청한 페이지가 새 위치로 영구적으로 이동했다. 302 임시 이동, 페이지가 현재 다른 위치에서 요청에 응답하고 있지만, 요청자는 향후 원래 위치를 계속 사용해야한다. 400번대 클라이언트 오류 400 잘못된 요청 401 권한없음 403 (Forbidden) 권한을 갖고 있지않아서 요청이 거부됨 404 서버에서 요청한 리소스를 찾을 수 없음 405 허용되지 않는 방법. POST 방식만을 지원하는 뷰에 GET 요청을 한 경우 500번대 서버 오류 500 서버 내부 오류 발생 200 응답 예 from djan..
[Django] ForeignKey
1:N 관계 models.ForeignKey로 표현한다. N측에 명시한다. (Post : Comment이면, Comment에 명시) ForeignKey(to, on_delete) to : 대상모델 클래스를 직접 지정하거나, 클래스명을 문자열로 지정한다. (자기 참조는 self) on_delete : Record 삭제시 규칙 CASCADE : FK로 참조하는 다른 모델의 Record도 삭제 PROJECT : ProtectedError (IntegrityError 상속)을 발생시키며, 삭제 방지 SET_NULL : Record가 삭제되었을시 null로 대체한다. 필드에 null=True 옵션 필수. SET_DEFAULT : 디폴트 값으로 대체한다. 필드에 디폴트 값 지정 필수. SET : 대체할 값이나 함수..
![[Django] django-debug-toolbar 사용하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdkYafY%2FbtrB5V940hS%2FjeOVQCVG3QBxmOS7L2H5yK%2Fimg.png)
[Django] django-debug-toolbar 사용하기
공식문서 django-debug-toolbar의 특징 현재 request/response에 대한 다양한 디버깅 정보를 보여준다. 다양한 Panel을 지원한다. SQLPanel을 통해, 각 요청 처리 시에 발생한 SQL 내역 확인 가능하다. Ajax 요청에 대한 지원은 불가능하다. 설치 및 실행 1. 설치 $ pip install django-debug-toolbar 2. settings.py 추가 INSTALLED_APPS = [ ... 'debug_toolbar', ... ] ... MIDDLEWEAR = [ ... 'debug_toolbar.middleware.DebugToolbarMiddleware', ... ] ... INTERNAL_IPS = ['127.0.0.1'] 3. (project)url..
[Django] django extensions shell_plus 사용하기
공식문서 extension shell_plus의 특징 장고 ORM이 어떻게 동작하는지 알아 볼 수 있다. 필요한 몇몇 기능들을 자동으로 import를 해준다. (주의사항)import 이름이 겹쳐버리면 overwirte 되어버린다. shell에서 직접 정렬하면 모델 Meta에 지정한 것이 무시가 된다. 설치 및 실행 1. django extensions 설치 $ pip install django-extensions 2. settings.py에 추가. INSTALLED_APPS = [ ... 'django_extensions', ... ] 3. 실행 $ python manage.py shell_plus --print-sql 실행하면 자동으로 import 해준다. # Shell Plus Model Import..