파이썬 장고 REST 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를 사용할 수 있으며 책을 보고 책을 추가하거나 업데이트할 수 있습니다.
Reference
이 문제에 관하여(파이썬 장고 REST API), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kibetamos/python-django-rest-api-ca0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)