본문 바로가기

Django

(21)
django API 문서 설정 (drf-yasg) (참고) django rest framework는 설치가 되어있다는 가정하에 아래 내용을 진행하겠다. drf-yasg란? swagger라는게 있는데 해당 사항은 더 이상 패키지를 관리하지 않는다고 하여 drf-yasg를 사용하는 추세이기도 하다. 그래서 다른게 있는가? 다른건 없고 같은 API 문서 자동화 패키지 이다. drf-yasg install 및 설정 drf-yasg 라이브러리 설치 $ pip install -U drf-yasg settings.py 설정 INSTALLED_APPS = [ ... 'drf_yasg', ] urls.py 설정 import debug_toolbar from django.contrib import admin from django.urls import pat..
Django seed로 테스트 데이터 자동 생성 해당 내용 참고 하기전 먼저 보고와야할 내용이 있다. 알고 있다면 계속해서 참고하자. django로 개발시 테스트 데이터가 필요한 경우 손수 하나씩 넣는건 비효율적이다. 그래서 사용하는것이 django-seed이다. django-seed 모듈을 통해 필드에 맞는 데이터를 직접 알맞게 셋팅 가능하다. install $ pip install django-seed 설정 # settings.py INSTALLED_APPS = [ 'django_seed', ] 위의 작업을 마치면 django-seed를 사용할 준비는 끝났다. 그럼 사용 방법을 예제로 알아보자 User 테이블에 데이터를 10개 정도 만들어보자 키워드는 seeder.add_entity(User, 10) 이다. add_entity()안에..
Django management command 사용하기 일단 시작 하기에 앞서 프로젝트에 management/command와 같이 폴더를 만들어준다. 어디든 상관 없다. 본인이 알 수 있는곳에 생성한다. 만약, 어디에 생성해야할지 고민이라면 일단 필자의 경로와 같이 만들어보자. 프로젝트 제일 상단 즉, 프로젝트를 만들때 startapp으로 생성한 폴더와 같은 위치(동등한 위치)에 core라는 폴더를 만들어 주고 management/command 폴더(오타나면 안됨)를 순서대로 만들어준다. 그리고 command 폴더 아래에 파일을 생성할껀데 무슨이름으로 해도 상관은 없지만 _(밑줄)을 사용한 이름을 사용할 수 없다. (ex) _private.py) 이것만 주의 한다면 어떠한 이름으로 한들 상관없다. 그럼 코드를 보며 구조를 살펴 보자 import random ..
Django User model Custom AbstractUser (사용자 정의 사용자 모델 대체) 일부 프로젝트에는 Django의 내장 사용자 모델이 항상 적절하지 않은 인증 요구 사항이 있을 수 있다. 예를 들어 일부 사이트에서는 사용자 이름 대신 이메일 주소를 식별 토큰으로 사용하는 것이 더 합리적이다. Django를 사용하면 커스텀 모델을 참조하는 AUTH_USER_MODEL 설정 값을 제공하여 기본 사용자 모델을 재정의 할 수 있다. AUTH_USER_MODEL = 'users.User' # . 위의 코드 내용은 Django project에서 settings.py에 포함되어야 하며 선행 작업으로는 Django app이름이 INSTALLED_APPS 에 선언 되어 있어야 한다. INSTALLED_APPS = [ ... &#3..
DRF ModelSerializer 근데 serializer를 매번 model 처럼 속성을 길게 적어줘야하는 노가다를 해야하나? 아니다. 더 간단하게 해줄 수 있다. ModelSerializer를 사용하게 되면 더 간단하게 사용할 수 있다. 아래 코드를 보자 from rest_framework import serializers from .model import User class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ("name", "phone", "birthday", "friend") 일반 Serializer를 사용했을때와 지금을 보자 어떤가? 훨씬 간단하게 작성이 되어졌다. 이렇게 수정하고 runserver를 통해서 확인해보자 Ser..
DRF serializer 그러면 이제 url과 view를 작성하는 법은 대충 알았다. 이제는 로직을 작성해볼건데 작성하기전 serializer에 대해 좀 알고 있어야한다. (위 두줄 제거 생각해보기) view의 내용은 api_view의 DRF 함수형뷰 api view 에서 이어진다. 간단히 설명하자면 serializer는 기본적으로 데이터가 보여야 하는 방식을 설명해주는 녀석이다. django에선 필요 model을 검증하고 JSON 객체로 변환해준다. 일단 코드를 작성해본다. # file을 새로 생성해준다. # users/serializers.py from rest_framework import serializers class UserSerializer(seiralizers.Serializer): """ models.py에서 a..
DRF 함수형 뷰 (@api_view) users/urls.py from django.urls import path from . import views app_name = 'users' urlpatterns = [ path("list/", views.list_users), ] 다음으로 view를 작성해보는데 함수형 뷰를 처음으로 작성해볼것이다. (물론 클래스형 뷰에 대해서도 알아 볼 것이다.) # users/views.py from rest_framework.decorators import api_view from rest_framework.response import Response @api_view(["GET"]) def list_user(request): return Response() 데코레이터를 이용해서 api_view..
django rest framework에 대해서 django 방식의 API DRF(Django Rest Framework)의 흐름에 대해서 보면 url의 경로를 따라 view에서 로직이 진행이 되는걸 확인 할 수 있다. django install pip install djangorestframwork 를 터미널에서 입력하고 설치한다. 설치가 다 되었으면 설치된 애플리케이션 안에 REST Framework를 설치해준다. # settings.py INSTALLED_APPS = [ ... 'rest_framework', ]config/urls.py from django.urls import path, include urlpatterns = [ ... paht("api/v1/users/", include('users.urls'))..