DRF 提供了 9 个视图子类,分别为 ListAPIView、CreateAPIView、ListCreateAPIView、UpdateAPIView、DestroyAPIView、RetrieveAPIView、RetrieveDestroyAPIView、RetrieveUpdateDestroyAPIView、RetrieveUpdateAPIView
导入语句
from rest_framework.generics import CreateAPIView, ListAPIView, ListCreateAPIView
from rest_framework.generics import UpdateAPIView, DestroyAPIView, RetrieveAPIView
from rest_framework.generics import RetrieveDestroyAPIView, RetrieveUpdateDestroyAPIView, RetrieveUpdateAPIView
继承自:GenericAPIView、ListModelMixin。该视图字类提供 get 方法
使用 ListAPIView 查看所有(部分代码)
from app01 import models
from app01.serializer import BookSerializer
from rest_framework.generics import ListAPIView
class BookView(ListAPIView):
queryset = models.Book.objects
serializer_class = BookSerializer
查看源码
class ListAPIView(mixins.ListModelMixin, GenericAPIView):
def get(self, request, *args, **kwargs):
return self.list(request, *args, **kwargs)
继承自: GenericAPIView、CreateModelMixin。该视图字类提供 post 方法
使用 CreateAPIView 创建(部分代码)
from app01 import models
from app01.serializer import BookSerializer
from rest_framework.generics import CreateAPIView
class BookView(CreateAPIView):
queryset = models.Book.objects
serializer_class = BookSerializer
查看源码
class CreateAPIView(mixins.CreateModelMixin, GenericAPIView):
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
继承自: GenericAPIView、RetrieveModelMixin。该视图字类提供 get 方法
使用 RetrieveAPIView 查看单个(部分代码)
from app01 import models
from app01.serializer import BookSerializer
from rest_framework.generics import RetrieveAPIView
class BookView1(RetrieveAPIView):
queryset = models.Book.objects
serializer_class = BookSerializer
查看源码
class RetrieveAPIView(mixins.RetrieveModelMixin, GenericAPIView):
def get(self, request, *args, **kwargs):
return self.retrieve(request, *args, **kwargs)
继承自:GenericAPIView、DestoryModelMixin。该视图字类提供 delete 方法
使用 DestoryAPIView 删除单个(部分代码)
class BookView1(DestroyAPIView):
queryset = models.Book.objects
serializer_class = BookSerializer
查看源码
class DestroyAPIView(mixins.DestroyModelMixin, GenericAPIView):
def delete(self, request, *args, **kwargs):
return self.destroy(request, *args, **kwargs)
继承自:GenericAPIView、UpdateModelMixin。该视图字类提供 put 和 patch 方法
使用 UpdateAPIView 修改单个(部分代码)
class BookView1(UpdateAPIView):
queryset = models.Book.objects
serializer_class = BookSerializer
查看源码
class UpdateAPIView(mixins.UpdateModelMixin, GenericAPIView):
def put(self, request, *args, **kwargs):
return self.update(request, *args, **kwargs)
def patch(self, request, *args, **kwargs):
return self.partial_update(request, *args, **kwargs)
继承自: GenericAPIView、ListModelMixin、CreateModelMixin,该视图子类一个实现创建和查询所有。提供 get、create 方法
继承自: GenericAPIView、RetrieveModelMixin、DestroyModelMixin。提供 get、delete方法
继承自: GenericAPIView、RetrieveModelMixin、UpdateModelMixin。该视图字类提供 get、put、patch方法
继承自:GenericAPIView、RetrieveModelMixin、UpdateModelMixin、DestoryModelMixin。该视图字类提供 get、put、patch、delete方法