‘‘‘3.视图组件优化方式一:使用mixins优化‘‘‘
#导入mixins模块
from rest_framework.mixins import (
CreateModelMixin, # 增删改查复
DestroyModelMixin,
UpdateModelMixin,
ListModelMixin,
RetrieveModelMixin
)
#导入已经写好的序列化类
from .serizlizer import BookSerizlizer
#导入GenericAPIView,它继承APIView
from rest_framework.generics import GenericAPIView
class BookView(ListModelMixin, CreateModelMixin, GenericAPIView):
#固定下来的类变量
queryset = models.Book.objects.all()
serializer_class = BookSerizlizer
def get(self, request, *args, **kwargs):
return self.list(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
#对单条数据做修改urls.py :"re_path(r‘book/(?P\d+)/$‘,views.BookFilterView.as_view())",此处匹配中写PK它会自动识别
class BookFilterView(RetrieveModelMixin, GenericAPIView, DestroyModelMixin, UpdateModelMixin):
queryset = models.Book.objects.all()
serializer_class = BookSerizlizer
def get(self, request, *args, **kwargs, ):
return self.retrieve(request, *args, **kwargs)
def delete(self, request, *args, **kwargs):
return self.destroy(request, *args, **kwargs)
def put(self, request, *args, **kwargs, ):
return self.update(request,*args, **kwargs, )