2. 视图
mixins(一个模块)
from rest_framework import mixins
from rest_framework import generics
class BookViewSet(mixins.ListModelMixin, #查
mixins.CreateModelMixin, #增
generics.GenericAPIView): #GenericAPIView继成apiview
#generics 一个模块
queryset = Book.objects.all()
serializer_class = BookSerializers
def get(self, request, *args, **kwargs):
return self.list(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
class BookDetailViewSet(mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
generics.GenericAPIView):
queryset = Book.objects.all()
serializer_class = BookSerializers
def get(self, request, *args, **kwargs): #单查
return self.retrieve(request, *args, **kwargs)
def put(self, request, *args, **kwargs): #改
return self.update(request, *args, **kwargs)
def delete(self, request, *args, **kwargs): #删
return self.destroy(request, *args, **kwargs)
generics(一个模块,里面增删改查各种组合)
from rest_framework import generics
class BookViewSet(generics.ListCreateAPIView):
queryset = Book.objects.all()
serializer_class = BookSerializers
class BookDetailViewSet(generics.RetrieveUpdateDestroyAPIView):
queryset = Book.objects.all()
serializer_class = BookSerializers
class PublishViewSet(generics.ListCreateAPIView):
queryset = Publish.objects.all()
serializer_class = PublshSerializers
class PublishDetailViewSet(generics.RetrieveUpdateDestroyAPIView):
queryset = Publish.objects.all()
serializer_class = PublshSerializers
viewsets.ModelViewSet
url(r'^books/$', views.BookViewSet.as_view({"get":"list","post":"create"}),name="book_list"),
url(r'^books/(?P<pk>\d+)$', views.BookViewSet.as_view({
'get': 'retrieve',
'put': 'update',
'patch': 'partial_update',
'delete': 'destroy'
}),name="book_detail"),
class BookViewSet(viewsets.ModelViewSet):
#ModelViewSet继承GenericViewSet继承ViewSetMixin(改类实现了URL方法的分发)
queryset = Book.objects.all()
serializer_class = BookSerializers