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

 更新时间:2019年07月25日 14:36:46   作者:Title  
这篇文章主要介绍了Django Rest framework解析器和渲染器详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

解析器

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

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

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的,一个是浏览器的.

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

相关文章

  • 基于Python函数和变量名解析

    基于Python函数和变量名解析

    今天小编就为大家分享一篇基于Python函数和变量名解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 使用python将请求的requests headers参数格式化方法

    使用python将请求的requests headers参数格式化方法

    今天小编就为大家分享一篇使用python将请求的requests headers参数格式化方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python常用模块sys,os,time,random功能与用法实例分析

    Python常用模块sys,os,time,random功能与用法实例分析

    这篇文章主要介绍了Python常用模块sys,os,time,random功能与用法,结合实例形式分析了Python模块sys,os,time,random功能、原理、相关模块函数、使用技巧与操作注意事项,需要的朋友可以参考下
    2020-01-01
  • Python通过psd-tools解析PSD文件

    Python通过psd-tools解析PSD文件

    这篇文章主要介绍了Python通过psd-tools解析PSD文件,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-06-06
  • 如何使用pyinstaller打包多个和单个python文件详解

    如何使用pyinstaller打包多个和单个python文件详解

    最近需要将python写的程序打包分发给其他同事使用,下面这篇文章主要给大家介绍了关于如何使用pyinstaller打包多个和单个python文件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • 基于python实现Pycharm断点调试

    基于python实现Pycharm断点调试

    这篇文章主要介绍了基于python实现Pycharm断点调试,在我们写程序的时候,很容易遇到各种各样的bug,然后编译器提示程序出错的地方。很多时候可以通过提示的信息修改程序,但是有时我们想得到更多的信息,这个时候就需要进行断点调试,下面我们就一起来学习ycharm断点调试
    2022-02-02
  • python批量导出导入MySQL用户的方法

    python批量导出导入MySQL用户的方法

    这篇文章主要介绍了
    2013-11-11
  • django从请求到响应的过程深入讲解

    django从请求到响应的过程深入讲解

    这篇文章主要给大家介绍了关于django从请求到响应的过程的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用django具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • python常见模块之OS模块和time模块

    python常见模块之OS模块和time模块

    这篇文章主要给大家介绍了关于python常见模块之OS模块和time模块的相关资料,time模块、os模块与sys模块被称为python模块中的三剑客,需要的朋友可以参考下
    2021-06-06
  • Python提取特定时间段内数据的方法实例

    Python提取特定时间段内数据的方法实例

    今天小编就为大家分享一篇关于Python提取特定时间段内数据的方法实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04

最新评论