【1122 | Day64】drf视图大家族及用法介绍
目录
drf框架|视图家族
1. Views | 视图类
将请求方式与视图类的同名方法建立映射,完成请求响应
1)APIView
:
- View的所有功能
- 重写as_view禁用csrf认证
- 重写dispatch:请求、响应、渲染、异常、解析、三大认证
- 多了一堆类属性,可以完成视图类的局部配置
2) GenericAPIView
:
-
APIView的所有功能
-
三个属性:
- queryset
- serializer_class
- lookup_url_kwarg
-
三个方法:
- get_object( ):获取单个(根据pk)
- get_queryset( ):获取所有
- get_serializer(*args, **kwargs):获取指定常用的几个参数
- data:用于反序列化传参
- many:获取多个序列化对象
- instance:如果save执行,则更新方法;反之,创建方法
- partial:True则进行局部字段修改;默认False
2. mixins | 视图工具类
- 五大工具类
- RetrievModelMixin
- ListModelMixin
- CreateModelMixin
- UpdateModelMixin
- DestroyModelMixin
- 六大工具方法
- retrieve >>> 单取
- list >>> 群取
- create >>> 单增
- update >>> 单整体改
- partial_update >>> 单局部改
- destroy >>> 单删
3. generics | 工具视图类
一堆mixins工具类与GenericAPIView视图基类组合
4. 视图集基类
1)ViewSet(ViewSetMixin,APIView)
:可以自定义映射关系的APIView
2)GenericViewSet(ViewSetMixin,GenericAPIView)
:可以自定义映射关系的GenericAPIView
5. ViewSetMixin | 视图集工具
重写as_view( ),完成请求方式与视图方法的自定义映射
as_view({'get': 'my_get'})
6. 常用Model视图集
1)ModelViewSet(mixins.CreateModelMixin,
mixins.RetrievModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
mixins.ListModelMixin,
GenericViewSet):某一资源的六大操作视图集
2)ReadOnlyModelViewSet(mixins.RetrievModelMixin,
mixins.ListModelMixin,
GenericViewSet):某一资源的只读操作视图集