DRF之APIView全笔记

发布时间 2023-07-31 14:15:33作者: 青岛programmer

一.APIView
基本视图,所有的都用这个来作
viewsetmixin主要管as_view{}里的调配 让视图不再需要两个类

二.通用视图GenericAPIView(rest_framework.viewsets)

GenericAPIView一共五个功能,数据库获取、分页、序列化、getobject\还有frilter_queryset__东西挺多的
主要管self.get_object和self.get_queryset这个基本技术————但凡带APIView就说明已经有了self.get_object和self.get_queryset

三.Mixin(五大混入类)继承自rest_framework.mixins
——————我觉得和二是平行关系 在开发过程中使用 `五大类` 或 `ModelViewSet` 是比较常见的
——————都要调用genericAPIView里面的self.get_object和self.get_queryset,不然不能用(以下五个只有功能,没继承任何人)
ListModelMixin (list)
CreateModelMixin (crete)
RetrieveModelMixin (Retrive)
UpdateModelMixin (update)分为部分和全部这个有点特殊
DestroyModelMixin (destroy)


四.GenericAPIView的视图子类(9大方法)
这个感觉比较中庸,

五视图集ViewSet继承自APIView与ViewSetMixin
————这个主要管自定义get,list等方法,可以将get改成got之类,自己玩名字。既有了{}的分配功能,又有了.APIView里的基本功能————感觉用得不多
class ViewSet(ViewSetMixin, views.APIView)
————这个ViewSet和上面的ViewSetMixin事情觉是一个体系

六GenericViewSet(rest_framework.viewsets)一般用这个多一些,而不用第二个GenericAPIView.
继承自GenericAPIView和ViewSetMixin,
注意,绕开了ViewSet好像,不自己自定义名字了,直接用五大类和GenericViewSet来做配合,

七.ModelViewSet最终集大成
class ModelViewSet(mixins.CreateModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
mixins.ListModelMixin,
GenericViewSet):

在Vue里安装router时use history for router的网址中没有#号,看起来好看12小节router安装
13小节,Vue里:to以对象形式绑定路由,由原来的地址,改成对象,直接to就是地址
重要在Vue中vouter.query是参数 params对应ID query是问号传过来的值