GenericAPIView和Mixin混⼊类
一、知识点讲解
每次基本操作:增、删、改、查,只有 序列化器类和查询集不⼀样
将不⼀样的数据 ,单独拿出来,作为参数传递
⼀样的步骤,可以封装为类,后期 直接继承使⽤
1、(1.1)GenericAPIView
GenericAPIView 继承 APIView ,主要增加了操作序列化器和数据库查询的⽅法,作⽤是为下⾯
Mixin混⼊类的执⾏提供数据⽀持。通常在使⽤时,可搭配⼀个或多个Mixin扩展
queryset —— ⽤于从该视图返回对象的查询集。通常,必须设置此属性,或重写
get_queryset() ⽅法
serializer_class —— ⽤于验证和反序列化输⼊以及序列化输出的序列化类。通常,必须设
置此属性,或重写 get_serializer_class() ⽅法。
(1.2)⼩结
GenericAPIView 相对于 ⽗类 APIView , 把独特的 数据 和 序列化器 抽象 出来, 把具体的 操
作步骤, 变为统⼀, ⽅便后期的 继承与复⽤, 也就是 接下来 要说的 Mixin 混⼊类
2、(2.1)、Mixin混⼊类
mixin 类提供⽤于提供基本视图⾏为的操作。请注意,mixin 类提供了操作⽅法,⽽不是直接定义处
理⽅法,如 .get() 和 .post() 。这允许更灵活的⾏为组合。
mixin 类可以从 rest_framework.mixins 导⼊
ListModelMixin : 查询全部
CreateModelMixin :添加
RetrieveModelMixin :查询单个
UpdateModelMixin :更新
DestroyModelMixin :删除
(2.2)⼩结
GenericAPIView 提供 查询集和序列化器, Mixin 混⼊类提供 具体的操作⽅法
两者结合,就可以简化 操作过程
3、扩展类
以下类是具体的通⽤视图。⽽往往要⼯作的级别就是 通⽤视图。
CreateAPIView : 添加视图类
ListAPIView : 列表展示视图类
RetrieveAPIView : 详情视图类
DestroyAPIView :删除视图类
UpdateAPIView :修改视图类
ListCreateAPIView :添加、展示视图类
RetrieveUpdateAPIView : 详情、更新 视图类
RetrieveDestroyAPIView :详情、删除视图类
RetrieveUpdateDestroyAPIView :详情、更新、删除视图类