drf框架中所有视图及用法
0909自我总结drf框架中所有视图及用法一.drf框架中的所有视图类
二.viewsets视图集ViewSetMixin:视图集工具 - 重写as_view - 将 请求方式 映射到视图类中的 指定方法 我们在路由中 类名.as_view({'get': 'retrieve','delete': 'remove_obj'}) GenericViewSet:与模型类有关的接口视图集 - 可以从mixins那继承功能,也可以自定义功能 ViewSet:与模型类无关或不是标准模型类接口 - 一般都是自定义功能 三.generics中GenericAPIView使用将 queryset 和 serializer_class 封装成类属性,提供了三个方法
使用这些方法的重要前提必须要
四.mixins使用mixins是在generics再进行方法的分装成5个方法
使用方法都是 如单取 首先我们要类进行继承class 类名(mixins.RetrieveModelMixin)
不过再执行这些操作的时候依然要给与generics视图一样的两个参数,且创建的视图类必须继承其方法的类为父类 五.generics中继承GenericAPIView的子类使用class BookRetrieveUpdateAPIView(generics.RetrieveUpdateAPIView): queryset = models.Book.objects.filter(is_delete=False).order_by('-id') serializer_class = serializers.BookModelSerializer 其实再之前的基础再进行方法的分装 居然有什么方法看源码即可ctrl+左键看源码 六自定制视图
from django.conf.urls import url from . import views urlpatterns = [ url(r'^v4/books/(?P<pk>.*)/$',views.BookGenericViewSet.as_view({ 'delete': 'remove_book' })),]
class BookGenericViewSet(mixins.RetrieveModelMixin,mixins.ListModelMixin,mixins.CreateModelMixin,mixins.UpdateModelMixin,viewsets.GenericViewSet): queryset = models.Book.objects.filter(is_delete=False).order_by('-id') serializer_class = serializers.BookModelSerializer def remove_book(self,request,**kwargs): pk = kwargs.get('pk') try: book_obj = models.Book.objects.get(is_delete=False,pk=pk) book_obj.is_delete = True book_obj.save() return APIResponse(0,'删除成功') except: return APIResponse(1,'删除失败') (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |