파이썬 장고 REST API

3853 단어 djangoapiwebdevpython
Django 및 Django REST Framework는 웹 API와 관련된 대부분의 복잡성을 적절하게 처리합니다.
표시된 대로 Python Django 애플리케이션을 만들었으면 이제 여기에 API를 추가해 보겠습니다.
먼저 아래 명령을 실행하여 명령줄에서 django-rest 프레임워크를 설치합니다.

pipenv install djangorestframework~=3.11.0


다음으로 config/settings.py 파일의 INSTALLED_APPS 구성에 rest_framework를 추가합니다. 로컬 앱과 타사의 혼동을 피하기 위해 아래와 같이 하는 것이 좋습니다.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # 3rd party
    'rest_framework', 
    # Local
    'books',
]



우리의 API는 JSON 형식의 모든 책을 나열하는 단일 끝점을 노출합니다. 이를 처리하려면 새 URL 경로, 새 보기 및 새 직렬 변환기 파일이 필요합니다.
먼저 새로운 api 앱을 만들어 봅시다.
터미널에서;python manage.py startapp api
그리고 설정 파일에 추가할 수 있습니다.

INSTALLED_APPS = [
# Local
'books.apps.BooksConfig',
'api.apps.ApiConfig', # new
# 3rd party
'rest_framework',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]


API 앱에는 자체 데이터베이스 모델이 없으므로 데이터베이스를 업데이트하기 위해 마이그레이션 파일을 만들고 마이그레이션을 실행할 필요가 없습니다.

URL



프로젝트 수준에서 api 앱을 포함하고 api/가 될 URL 경로를 구성해야 합니다.
path('api/', include('api.urls')),
API 앱에서 아래 명령을 실행하여 urls.py 파일을 만듭니다.touch api/urls.py우리의 URL 파일에는 다음이 있습니다.

# api/urls.py
from django.urls import path
from .views import BookAPIView
urlpatterns = [
     path('', BookAPIView.as_view()),
]


api urls 파일에 대해 모두 설정되었으므로 뷰 생성을 진행하겠습니다.

견해



우리는 Django REST Framework의 내장 일반 클래스 보기에 의존하는 views.py 파일을 만들 것입니다.
views.py 파일에서 다음과 같이 업데이트할 것입니다.

rest_framework에서 제네릭 가져오기
books.models 가져오기 책에서
.serializers 가져오기에서 BookSerializer

class BookAPIView(generics.ListAPIView):
    queryset = Book.objects.all()
    serializer_class = BookSerializer


뷰 코드에 대한 설명
맨 윗줄에서 Django REST Framework의 제네릭 보기 클래스, books 앱의 모델 및 api 앱의 serializer를 가져옵니다.(다음 단계에서 serializer를 만들 예정입니다.)
그런 다음 ListAPIView를 사용하여 모든 책 인스턴스에 대한 읽기 전용 끝점을 만드는 BookAPIView를 만듭니다.
직렬 변환기를 만들 수 있습니다.

직렬 변환기



간단히 말해서 직렬 변환기는 데이터를 인터넷을 통해 쉽게 사용할 수 있는 형식(일반적으로 JSON)으로 변환하고 API 엔드포인트에 표시합니다.
Django REST Framework로 직렬 변환기를 만들고 Django 모델을 JSON으로 변환할 것입니다.
API 앱 내에서 serializers.py 파일을 만듭니다.
명령줄에서;
touch api/serializers.py우리의 serializers.py 파일에는 다음 내용이 있습니다.

# api/serializers.py
from rest_framework import serializers
from books.models import Book

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = ('title', 'subtitle', 'author', 'isbn')


Django REST Framework의 직렬 변환기 클래스와 책 앱에서 책 모델을 가져옵니다.
우리는 Django REST Framework의 ModelSerializer를 데이터베이스 모델인 Book과 노출하려는 데이터베이스 필드(title, subtitle, author 및 isbn)를 지정하는 BookSerializer 클래스로 확장합니다.
서버를 시작하여 API 엔드포인트가 어떻게 보이는지 확인하고 브라우저에서 이 URL을 실행해 보겠습니다.http://127.0.0.1:8000/api/
로컬 서버가 여전히 첫 번째 명령줄 콘솔에서 실행 중인 상태에서 웹 브라우저에서 http://127.0.0.1:8000/api/ 의 API 끝점으로 이동합니다.
API에 액세스하기 위해 Postman을 사용하거나 Insomnia를 사용할 수 있으며 책을 보고 책을 추가하거나 업데이트할 수 있습니다.

좋은 웹페이지 즐겨찾기