其他分享
首页 > 其他分享> > 模型类序列化器的几个类

模型类序列化器的几个类

作者:互联网

GenericAPIView   实现通用的数据库查询和序列化
在类中定义:
 queryset = Book.objects
serializer_class = myserializersmod.BookModelSerializer
自己需要实现get post put delete 方法 好处是写法都是差不多的
ListModelMixin 
RetrieveModelMixin
UpdateModelMixin等等
这个里面实现的就是增删改查的功能
ModelViewSet 里面实现了全部的增删改查(是带modelmixin的),还继承了GenericViewSet
GenericViewSet 继承了GenericAPIView和ViewSetMixin
GenericAPIView是通用类,
ViewSetMixin是重写了as_view方法,重写这个as_view方法的 就是想get替换成了list,也就是ListModelMixin类中方法 det list ,调get 就是调的list


ListAPIView 继承了ListModelMixin 和GenericAPIView 但是没有继承ViewSetMixin 所以使用的还是get方法 ,是在这个类的方法中调用了list
def get(self, request, *args, **kwargs):
return self.list(request, *args, **kwargs)

ViewSet 继承了ViewSetMixin, views.APIView 首先继承了ViewSetMixin 代表着就要替换get post等方法的名字,但是他是继承了APIview,所以视图函数中的代码都得自己写,
为什么要使用这个类,因为可以用装饰器 把函数名字直接当成url,比如def login,通过装饰器,在通过半自动路由的设置,就可以直接访问/login/,而且可以指定这个函数是什么请求方法,
在使用jwt的时候,用户登录后需要把token返回给前端,让前端去处理保存数据,这看起来是get数据,通过装饰器可以指定请求方式为post,修改的方法同样能写在一起,也同样可以通过装饰器指定post请求方法,
这种就可以灵活使用,



 

标签:GenericAPIView,get,几个,模型,list,ViewSetMixin,post,序列化,方法
来源: https://www.cnblogs.com/dzs894330350/p/16098267.html