Django Rest Framework 2.x 튜토리얼 (1)

Requirement


  • Python > 3.6
  • Mac or Linux (recommend)

  • venv 환경 만들기



    호스트 환경을 더럽히지 않으려면 파이썬 가상 환경 인 venv를 사용하는 것이 가장 쉬운 방법 중 하나입니다.
    mkdir <project-name> # ex. example_django_rest_api
    cd <project-name>
    python -m venv venv
    source venv/bin/activate
    

    그러면 terminal에서의 표시가,
    ~$ -> [venv] ~$ 와 같습니다. 반대로 말하면 이렇게 되지 않으면 venv 환경에 넣지 않습니다.

    우선 프로젝트를 시작



    패키지 설치 및 확인



    venv 환경 내에서 먼저 이번에 다루는 프로젝트에 대한 종속 패키지를 설치합니다.
    pip install Django django-livesync drf_yasg djangorestframework uWSGI packaging
    

    설치한 패키지를 확인합시다.
    pip freeze
    
    $ pip freeze
    # ...
    # Django==2.2.4
    # django-livesync==0.4
    # djangorestframework==3.10.2
    # ...
    

    앞으로는 설치된 패키지 목록을 저장해 둡시다.
    $ pip freeze > requirement.txt
    

    현재까지의 폴더 구성은 다음과 같습니다.
    . example_django_rest_api
    ├── db.sqlite3
    ├── example_django_rest_api
    │   ├── __init__.py
    │   ├── __pycache__
    │   │   └── ...
    │   ├── settings.py
    │   ├── urls.py
    │   └── wsgi.py
    ├── manage.py
    ├── venv
    │   └── ...
    └── requirement.txt
    

    고마워요. 좀 더 노력하면 작은 휴식을 끼자.

    Hello Django!



    다음 명령을 사용하여 프로젝트를 시작할 수 있습니다.

    마지막 "."을 잊지 마십시오.
    $ django-admin startproject example_django_rest_api .
    $ python manage.py runserver
    

    브라우저에서 http://localhost:8000로 이동하십시오. 다음과 같은 화면이 보일 것입니다.



    Django 사용해 보았다! 같아요, 좋아요가 1000건 정도 붙어 있는 기사에서 자주 보는 것입니다.

    Hello Swagger via Django !



    일부 파일을 편집하면 Swagger에 대한 문이 열립니다. 이어서 livereload 등의 설정도 합시다.

    먼저 settings.py 를 편집합니다.
    # add '*' into a list
    ALLOWED_HOSTS = ['*']
    
    # add some elements into a list
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        # add below elements
        'livesync',
        'rest_framework',
    ]
    
    # add below lines
    MIDDLEWARE_CLASSES = (
        'livesync.core.middleware.DjangoLiveSyncMiddleware',
    )
    

    그런 다음 urls.py 를 편집합니다.
    from django.contrib import admin
    from django.urls import path
    
    # add below lines
    from django.conf.urls import url
    
    from rest_framework import permissions
    from drf_yasg.views import get_schema_view
    from drf_yasg import openapi
    
    schema_view = get_schema_view(
       openapi.Info(
          title="RESTful API Lists",
          default_version='v1',
          description="Django Rest Framework Swagger : First Steps",
          terms_of_service="https://github.com/MokkeMeguru",
          contact=openapi.Contact(email="[email protected]"),
          license=openapi.License(name="MIT"),
       ),
       public=True,
       permission_classes=(permissions.AllowAny,),
    )
    
    # add some elements into the list
    urlpatterns = [
        path('admin/', admin.site.urls),
        # url(r'^swagger(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'),
       url(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
        url(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
    ]
    

    편집이 끝나면 http://localhost:8000/swagger로 이동하십시오. swagger 경계 익숙한 화면을 볼 수 있다고 생각합니다. API를 사용해 볼 때 이것이 매우 유용하다고 생각합니다 (다음 번부터 소개합니다).


    http://localhost:8000/redoc 는 API 의 문서적인 것을 볼 수 있게 되어 있습니다. 관심이 있으시면 방문해보세요.

    이상으로 이번 튜토리얼은 종료입니다. 커피도 마시고 휴식을 취합시다.

    Tips



    django-rest-swagger 폐지



    issue 에서 알 수 있듯이, django-rest-swagger 는 오와콘이 되었습니다.

    대신 drf-yasg을 사용합시다.

    PyMySQL의 Django 비 대응 정보



    아무래도 Django 는 PyMySQL 의 대응을 하고 싶지 않은 것 같습니다. 최소한 Django 2.2.1에서는 지원되지 않았습니다. htps : // / cs. d 쟈고 p 로지 ct. 코 m/엔/2.2/레아아세 s/2.2/ 에서도 알 수 있듯이 mysqlclient 추측의 모양.

    같은 기능의 라이브러리를 난립시키지 말고 싶다(절실)

    venv 환경은 OOO(에디터명)로 어떻게 들어가는 거야?



    "OOO venv python"에서 확인하십시오. 그래서 모르면, 당신에게 그 에디터는 맞지 않을까요.

    pip install -r requirement.txt



    종속 패키지를 저장한 파일에서 패키지 설치를 수행하는 방법. 다른 환경으로 리포지토리를 복제하고 실행할 때 중요합니다.

    backlog



    이 상태의 데이터는이 리포지토리의 release v0.1.1에 있습니다.

    리포지토리

    목차



    Django Rest Framework 2.x 자습서(0)
    Django Rest Framework 2.x 튜토리얼 (1)
    Django Rest Framework 2.x 튜토리얼 (2)
    Django Rest Framework 2.x 튜토리얼 (3)
    Django Rest Framework 2.x 튜토리얼 (4)
    Django Rest Framework 2.x 튜토리얼 (5)
    Django Rest Framework 2.x 튜토리얼 (6)

    좋은 웹페이지 즐겨찾기