Django Rest framework解析器和渲染器详解
作者:Title 发布时间:2021-06-30 20:46:25
解析器
解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己想要的数据类型的过程.
本质就是对请求体中的数据进行解析.
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数据的:
application/x-www-form-urlencoded不是不能上传文件,是只能上传文本格式的文件.
multipart/form-data是将文件以二进制的形式上传,这样可以实现多种类型的文件上传.
一个解析到request.POST中,一个解析到request.FILES中.
也就是说,在Django中我们之所以能在request中得到各种数据类型,是因为我们使用了这些解析器.
DRF中的解析器
DRF的请求数据都在request.data中.
所以,我们就来看Request类中的data:
得到解析器后,调用解析器里的parse方法:
到这里,我们再看下DRF配置的默认的解析器的类都有哪些:
DEF支持Json、Form表单的请求,包括多种文件类型的数据:
我们也可以再视图中配置视图级别的解析器:
好
DRF中的渲染器
渲染器为我们友好地展示数据.
DRF为我们提供的渲染器有:
一个是Json的,一个是浏览器的.
来源:https://www.cnblogs.com/zyk01/p/10176387.html


猜你喜欢
- 前言本文介绍如何使用Python制作一个简单的猜数字游戏。游戏规则玩家将猜测一个数字。如果猜测是正确的,玩家赢。如果不正确,程序会提示玩家所
- '定义变量 Dim cn,rs,Sql Sql = "sel
- 参考: Smashing magzine翻译+整理: Demix当完成一项前端的工作之后,许多人都会忘记该项目的结构与细节。然而代码并不是马
- 多个字段模糊查询, 括号中的下划线是双下划线,双下划线前是字段名,双下划线后可以是icontains或contains,区别是是否大小写敏感
- 我就废话不多说了,还是直接看代码吧!import osimport timeimport mmapfilename = 'test.
- 本文以实例形式分析了Python多进程编程技术,有助于进一步Python程序设计技巧。分享给大家供大家参考。具体分析如下:一般来说,由于Py
- 本文实例讲述了flask框架视图函数用法。分享给大家供大家参考,具体如下:flask框架 视图函数当中 各种实用情况简单配置1 建立连接2
- 循环加载模块假设你有两个文件,a.py和b.py,在这两个文件中互相加载对方,例如:在a.py中:import bdef f():retur
- 前期准备1、机器人框架的下载和配置首先需要一个qq机器人框架,我使用的是基于mirai 以及 MiraiGo 开发的go-cqhttp(里面
- 用Python基于Google Bard做一个交互式的聊天机器人之前已经通过浏览器试过了 Google Bard ,更多细节请看: Try
- 本文实例讲述了linux下通过go语言获得系统进程cpu使用情况的方法。分享给大家供大家参考。具体分析如下:这段代码通过linux的系统命令
- 本文实例讲述了微信小程序学习笔记之文件上传、下载操作。分享给大家供大家参考,具体如下:前面介绍了微信小程序登录API与获取用户信息操作。这里
- 本文实例讲述了JavaScript实现点击按钮切换网页背景色的方法。分享给大家供大家参考,具体如下:这里演示JavaScript用按钮随意变
- 前言Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"
- 本文为大家分享了mysql8.0.11客户端无法登陆的解决方法,供大家参考,具体内容如下mysql8.0.11 默认加密方式【caching
- mysql数据库自不必说,现在很多程序开发应用及站长们常用到,jdbc可能一般会比较陌生一些,jdbc是什么意思?这里也会提到,最主要的是为
- 1、django搜索路径使用 import 语句时,Python 所查找的系统目录清单。查看方式:import sysprint
- 本文主要介绍了Python中list[::-1]的几种用法,分享给大家,具体如下:s = "abcde"list的[]中
- 出现这样的问题是当你浏览UTF-8编码的时候,服务器默认用UTF-8的引擎来输出html,当你用再浏览GB2312的页面时,它还是用UTF-
- 需求有多个文件地理数据库(gdb),数据库内有多个面要素类图层,每个图层不能有自重叠,也不能和其他图层重叠。所以,需要为每个文件地理数据库(