一、视图类
1、写 publish: 查询所有,查询单条,修改一条,新增一条,删除一条的接口
class PublishView(ListCreateAPIView): queryset = Publish.objects.all() serializer_class = PublishSerializer class PublishDetailView(RetrieveUpdateDestroyAPIView): queryset = Publish.objects.all() serializer_class = PublishSerializer
2、写 publish 查询单条,新增一条的接口--->使用9个视图子类编写
class PublishView(CreateAPIView): queryset = Publish.objects.all() serializer_class = PublishSerializer class PublishDetailView(RetrieveAPIView): queryset = Publish.objects.all() serializer_class = PublishSerializer
3、写 publish: 查询单条,新增一条,的接口--->使用5个视图扩展类+GenericAPIView
class PublishView(GenericAPIView,CreateModelMixin): queryset = Publish.objects.all() serializer_class = PublishSerializer def post(self,request,*args,**kwargs): return self.create(request,*args,**kwargs)
class PublishDetailView(GenericAPIView,RetrieveModelMixin): queryset = Publish.objects.all() serializer_class = PublishSerializer def get(self,request,*args,**kwargs): return self.retrieve(request,*args,**kwargs)
二、视图集
1、
from rest_framework.viewsets import ModelViewSet class PublishView(ModelViewSet): queryset = Publish.objects.all() serializer_class = PublishSerializer class PublishDetailView(ModelViewSet): queryset = Publish.objects.all() serializer_class = PublishSerializer
2、修改路由
在路由.as_view()中:写一个字典,请求方法对应接口增删改查方法
urlpatterns = [ path('publishs/', PublishView.as_view({'get': 'list', 'post': 'create'})), path('publishs/<int:pk>', PublishDetailView.as_view({'get': 'retrieve', 'put': 'update', 'delete': 'destroy'})), ]
3、
三、路由
1、
2、
3、