1. GenericAPIView+Mixin实现
from rest_framework.generics import GenericAPIView
from rest_framework.mixins import CreateModelMixin, ListModelMixin, UpdateModelMixin, RetrieveModelMixin, DestroyModelMixin
class GBookListAPIView(ListModelMixin, CreateModelMixin, GenericAPIView):
"""列表视图"""
# 指定查询集、序列化器类
queryset = BookInfo.objects.all()
serializer_class = BookInfoSerializer
def get(self, request):
return self.list(request)
def post(self, request):
return self.create(request)
class GBookDetailAPIView(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin, GenericAPIView):
"""详情视图"""
# 指定查询集和序列化器
queryset = BookInfo.objects.all()
serializer_class = BookInfoSerializer
def get(self, request, pk):
return self.retrieve(request, pk)
def put(self, request, pk):
return self.update(request, pk)
def delete(self, request, pk):
return self.destroy(request, pk)
2. 直接继承封装好的合成类:ListCreateAPIView, RetrieveUpdateDestroyAPIView
from rest_framework.generics import ListCreateAPIView, RetrieveUpdateDestroyAPIView
class GBookListAPIView(ListCreateAPIView):
"""列表视图"""
# 指定查询集、序列化器类
queryset = BookInfo.objects.all()
serializer_class = BookInfoSerializer
class GBookDetailAPIView(RetrieveUpdateDestroyAPIView):
"""详情视图"""
# 指定查询集和序列化器
queryset = BookInfo.objects.all()
serializer_class = BookInfoSerializer