解析器 :
解析器的作用就是服务器端接收客户端穿过来的数据, 把数据解析成自己想要的数据类型的过程.
本质就是对请求体重的数据进行解析.
解析器原理 :
1. 拿到前端传过来的Content-Type
2. 获取后端自己的所有解析器
3.
Django的解析器 :
请求进来在请求体中的数据在request.body, 那也就证明, 解析器会把解析好的数据放入request.body中, 我们在视图中可以打印request的类型, 能够知道reqeust是WSGIRequest这个类.
在源码中看下是怎么拿到request.POST数据的:
application/x-www-form-urlencoded指的是只能上传文本格式的文件.
multipart/form-data是将文件以二进制的形式上传, 这样可以实现多种类型的文件上传.
一个解析到reqeust.POST, request.FILES中.
也就是说我们之前能在request中得到的各种数据是因为用了不同格式的数据解析器.
DRF的解析器 :
那么我们的解析器什么时候会被调用呢?
得到解析器后, 调用解析器里的parse方法
在看下DRF配置的默认的解析器的类都有什么?
也就是说我们DRF支持Json, Form表单的请求, 包括多种文件类型的数据
可以在视图中配置视图级别的解析器
这就是DRF的解析器
DRF的渲染器 :
渲染器就是有好的展示数据
DRF给我们提供的渲染器有
在浏览器中展示的DRF测试的那个页面就是通过浏览器的渲染器做到的
当然也可以展示Json数据类型