REST 프레임워크 보기 클래스의 APIView 및 GenericAPIView
rest_framework.views.APIView
APIView
는 REST 프레임워크가 제공하는 모든 보기의 기본 클래스로 Django의 View
부류를 계승한다.Request
대상이지 Django의 HttpRequeset
대상이 아니다.Response
대상을 되돌려주고 보기는 응답 데이터 설정(render)이 전방 요구에 부합되는 형식을 설정합니다.정의된 속성 지원
APIView
에서 get(),post() 또는 다른 요청 방식을 일반적인 클래스 보기 정의 방법으로 구현합니다.from rest_framework.views import APIView
from rest_framework.response import Response
# url(r'^books/$', views.BookListView.as_view()),
class BookListView(APIView):
def get(self, request):
books = BookInfo.objects.all()
serializer = BookInfoSerializer(books, many=True)
return Response(serializer.data
GenericAPIView 일반 뷰 클래스
rest_framework.generics.GenericAPIView
APIVIew
를 계승하여 APIView와 완전히 호환되며 주로 서열화기와 데이터베이스 조회를 조작하는 방법을 추가했고 다음 Mixin 확장 클래스의 실행에 방법 지원을 제공한다.일반적으로 를 사용할 때는 하나 이상의 Mixin 확장 클래스와 함께 사용할 수 있습니다.세 가지 속성과 방법
속성
urlpatterns = [
url(r'^v2/books/$', views.BookGenericAPIView.as_view()),
url(r'^v2/books/(?P.*)/$', views.BookGenericAPIView.as_view()),
]
# BookGenericAPIView.as_view() => APIView as_view() => View as_view() => APIView dispatch
from rest_framework.generics import GenericAPIView
# BookGenericAPIView.as_view() => APIView as_view() => View as_view() => APIView dispatch
class BookGenericAPIView(GenericAPIView):
queryset = models.Book.objects.filter(is_delete=False)
serializer_class = serializers.BookModelSerializer
lookup_field = 'pk' # lookup_field = 'pk'
# :
def get(self, request, *args, **kwargs):
book_query = self.get_queryset() # queryset , model queryset
book_ser = self.get_serializer(book_query, many=True) # BookModelSerializer
book_data = book_ser.data
return APIResponse(results=book_data)
# :
def get(self, request, *args, **kwargs):
book_obj = self.get_object() # queryset , lookup_field , model ( : )
book_ser = self.get_serializer(book_obj)
book_data = book_ser.data
return APIResponse(results=book_data)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
REST API (RESTfull API)란?REST는 Representational State Transfer라는 용어의 약자로 웹의 장점을 최대한 활용할 수 있도록 만들어진 네트워크 아키텍처 원리의 모음이다. 1. HTTP URI를 통해 자원을 명시하고 2...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.