DRE Viewset(视图集)的使用
视图集的使用
01-APIView的使用
rest_framework.views.APIView
APIView
是REST framework提供的所有视图的基类,继承自Django的View
父类。
APIView
与View
的不同之处在于:
- 传入到视图方法中的是REST framework的
Request
对象,而不是Django的HttpRequeset
对象; - 视图方法可以返回REST framework的
Response
对象,视图会为响应数据设置(render)符合前端要求的格式; - 任何
APIException
异常都会被捕获到,并且处理成合适的响应信息; - 在进行dispatch()分发前,会对请求进行身份认证、权限检查、流量控制。
支持定义的属性:
- authentication_classes 列表或元祖,身份认证类
- permissoin_classes 列表或元祖,权限检查类
- throttle_classes 列表或元祖,流量控制类
在APIView
中仍以常规的类视图定义方法来实现get() 、post() 或者其他请求方式的方法。
*注意 APIView使用过程中要注意所使用的request及response是否为DRF框架提供
02-GenericAPIView的使用
rest_framework.generics.GenericAPIView
继承自APIVIew
,增加了对于列表视图和详情视图可能用到的通用支持方法。通常使用时,可搭配一个或多个Mixin扩展类。
支持定义的属性:
列表视图与详情视图通用:
- queryset 列表视图的查询集
- serializer_class 视图使用的序列化器
列表视图使用:
- pagination_class 分页控制类
- filter_backends 过滤控制后端
详情页视图使用:
- lookup_field 查询单一数据库对象时使用的条件字段,默认为’
pk
’ - lookup_url_kwarg 查询单一数据时URL中的参数关键字名称,默认与look_field相同
- lookup_field 查询单一数据库对象时使用的条件字段,默认为’
APIView与GenericAPIView使用方式基本一样。在调用查询集及序列化器时稍有不同。
- 指定序列化器和查询集
serializer_class = BookSerializer # 指定序列化器 queryset = BookInfo.objects.all() # 指定数据对象查询集
- 使用序列化器和查询集
books = self.get_queryset() # 获取查询集所有数据ser = self.get_serializer(books, many=True) # 获取序列器对象 获得的是一个序列化器对象
获取单一模型对象
get_object() 只能查询主键,主键形参只能是pk
03-GenericAPIView方法源代码分析
- 前端请求 —>>自己定义的类视图 ——>> genericapiview 方法
04-拓展类的使用
- GenericAPIView配合拓展类使用可以极大程度的减少代码量
05-拓展类使用调用流程分析`
- 前端请求 —>>自己定义的类视图 —>> 拓展类方法 ——>> genericapiview 方法
DRE Viewset(视图集)的使用相关推荐
- java中fitlter,068.Python框架Django之DRF视图集使用
一 视图集与路由的使用 使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() ...
- python Django Rest_Framework框架 视图集与路由Routers详解(图文并茂版)
视图集与路由Routers详解 视图集 ViewSet视图集 代码实现 GenericViewSet视图集 代码实现 ModelViewSet视图集 ReadOnlyModelViewSet视图集 路 ...
- DRF 框架总结 - 视图集路由 Routers
视图集 ViewSet 使用视图集 ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update( ...
- DRF--【视图集】详解
㈠ . ViewSet 视图集 ViewSetMixin里重写了as_view方法,可以更方便的绑定actions. ViewSet视图集类不再实现get().post()等方法,而是实现动作 act ...
- 四十七、python学习之Django框架(DRF框架三):Request与Response、视图与视图集、路由
Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验.保存.转换数据); 控制数据库查询的执行 一.Request与Response: 1. Request: ...
- DRF中的视图集使用
DRF中的视图集使用 常用的视图集有: ViewSet GenericViewSet ModelViewSet ReadOnlyModelViewSet ViewSet 一个ViewSet类只是一种基 ...
- 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(一)视图共性 学习笔记...
2019独角兽企业重金招聘Python工程师标准>>> 如果想进行自定义的配置,可以继承基类UIView. 地图app中需要多点触动Multiple Touch, opaque不透明 ...
- 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(二)ActionSheet视图 学习笔记...
action动作 sheet表 其实就是一种菜单 参数:1代理:谁去代理它2取消按钮标题3这个按钮标题会自动变成红色4添加设置其他按钮(不想加,设置为nil) 然后我们为这些按钮添加点击事件:
- RESTful之视图集ViewSet
使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() 保存数据 destor ...
最新文章
- 《代码敲不队》第五次作业:项目需求分析改进与系统设计
- device:GPU:0 but available devices are [ /job:localhost/replica:0/task:0/dev
- linux设备驱动归纳总结(四):1.进程管理的相关概念【转】
- [SDOI2015]星际战争
- 树梅派kali界面_使用树莓派和kali Linux打造便携式渗透套件
- python gevent教程_Python的gevent框架的入门教程
- B - Friends
- Kronos Research推出结合WOO质押机制的新资管产品规模已达1500万美元
- C++ 命名空间(namespace)
- Windows7安装IIS服务器
- origin 修改默认字体
- 如何在计算机中增加字体,电脑如何添加字体?WinXP系统新增个性字体的方法
- 计算机打游戏的硬件,玩电脑常见的六大误区 看看你犯了几条
- [转]中国佛学66句震撼世界的禅语
- 基于FPGA的UART串口通信实验(VHDL语言实现)
- sqlserver 中使用sqlcmd 执行*.sql文件
- 全球隔离,生出不少坏毛病
- oracle中部门工资降序排列,oracle面试题整理二(10级学员 乔宇整理)
- Java基础学习经验分享
- docker容器访问宿主机mysql数据库
热门文章
- java管道流有哪些_Java管道流
- firewall-cmd设置防火墙规则
- 2023/2/13 ubuntu18.04版本无线与有线网络网络配适流程
- HttpURLConnection获取百度搜狗360搜索链接重定向真实目标链接地址url
- 公关策划书的标准格式及撰写要素
- Android官网教你如何系统学习
- JAVA中字符串倒序、判断名字中英文、判断手机号格式以及正则表达式应用
- python3性能还低吗_Python 2 vs Python 3,究竟谁是性能之王?
- Microsoft visual c++2017 X64 Minimum Runtime等vc++运行库问题的解决记录
- BMP 图像信息隐藏及检测