Django Rest framework解析器和渲染器详解


Posted in Python onJuly 25, 2019

解析器

解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己想要的数据类型的过程.

本质就是对请求体中的数据进行解析.

Content-type:用于声明我给你传的是什么类型的数据

  • application/x-ww-form-urlencoded 表单数据类型
  • multipart/form-data 文件
  • application/json(比如:request.body)
  • Accept:用于声明我能解析什么样的数据类型

Django中的解析器

我们的请求进来后,请求体中的数据是保存在request.body中的.

这就说明:==解析器会把解析好的数据放入request.body中.==

我们在视图中打印request的类型,便可知道request是WSGIRequest这个类的.

我们可以看下这个类的源码,我们是这样拿到request.POST数据的:

Django Rest framework解析器和渲染器详解

Django Rest framework解析器和渲染器详解

application/x-www-form-urlencoded不是不能上传文件,是只能上传文本格式的文件.

multipart/form-data是将文件以二进制的形式上传,这样可以实现多种类型的文件上传.

一个解析到request.POST中,一个解析到request.FILES中.

也就是说,在Django中我们之所以能在request中得到各种数据类型,是因为我们使用了这些解析器.

DRF中的解析器

DRF的请求数据都在request.data中.

所以,我们就来看Request类中的data:

Django Rest framework解析器和渲染器详解

Django Rest framework解析器和渲染器详解

Django Rest framework解析器和渲染器详解

Django Rest framework解析器和渲染器详解

Django Rest framework解析器和渲染器详解

Django Rest framework解析器和渲染器详解

得到解析器后,调用解析器里的parse方法:

Django Rest framework解析器和渲染器详解

到这里,我们再看下DRF配置的默认的解析器的类都有哪些:

Django Rest framework解析器和渲染器详解

DEF支持Json、Form表单的请求,包括多种文件类型的数据:

Django Rest framework解析器和渲染器详解

我们也可以再视图中配置视图级别的解析器:

Django Rest framework解析器和渲染器详解


DRF中的渲染器

渲染器为我们友好地展示数据.

DRF为我们提供的渲染器有:

Django Rest framework解析器和渲染器详解

一个是Json的,一个是浏览器的.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中getaddrinfo()基本用法实例分析
Jun 28 Python
Python中如何优雅的合并两个字典(dict)方法示例
Aug 09 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
python实现批量解析邮件并下载附件
Jun 19 Python
Django实现分页功能
Jul 02 Python
Python面向对象之类和对象属性的增删改查操作示例
Dec 14 Python
PyTorch基本数据类型(一)
May 22 Python
Python Pandas 箱线图的实现
Jul 23 Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
Feb 07 Python
Python selenium键盘鼠标事件实现过程详解
Jul 28 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
Sep 28 Python
Django Form 实时从数据库中获取数据的操作方法
Jul 25 #Python
Django MEDIA的配置及用法详解
Jul 25 #Python
Django打印出在数据库中执行的语句问题
Jul 25 #Python
python requests指定出口ip的例子
Jul 25 #Python
Tornado实现多进程/多线程的HTTP服务详解
Jul 25 #Python
Python使用指定端口进行http请求的例子
Jul 25 #Python
django多对多表的创建,级联删除及手动创建第三张表
Jul 25 #Python
You might like
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
Javascript & DHTML 实例编程(教程)DOM基础和基本API
2007/06/02 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
通过action传过来的值在option获取进行验证的方法
2013/11/14 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
js实现跨域的方法实例详解
2015/06/24 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
Vue.js实现开发购物车功能的方法详解
2019/02/22 Javascript
Nginx设置为Node.js的前端服务器方法总结
2019/03/27 Javascript
js核心基础之闭包的应用实例分析
2019/05/11 Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
2019/09/23 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
2014/11/05 Python
python爬虫 2019中国好声音评论爬取过程解析
2019/08/26 Python
windows上彻底删除jupyter notebook的实现
2020/04/13 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
教师专业理论水平的自我评价分享
2013/11/09 职场文书
经理管理专业自荐信范文
2013/12/31 职场文书
幼儿园老师辞职信
2014/01/20 职场文书
英语生日邀请函
2014/01/23 职场文书
五一手机促销方案
2014/03/08 职场文书
护士2014年终工作总结
2014/11/11 职场文书
面试通知单大全
2015/04/20 职场文书
先进党支部事迹材料2016
2016/02/26 职场文书
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技