python – DRF中的request.data与Django中的request.body
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – DRF中的request.data与Django中的request.body,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1473字,纯文字阅读大概需要3分钟。
内容图文
![python – DRF中的request.data与Django中的request.body](/upload/InfoBanner/zyjiaocheng/805/513f260b91084eff9b1584fc7fcf0c1e.jpg)
Django REST框架引入了一个扩展常规HttpRequest的Request对象,这个新对象类型有request.data来访问’POST’,’PUT’和’PATCH’请求的JSON数据.
但是,我可以通过访问request.body参数来获取相同的数据,该参数是原始Django HttpRequest类型对象的一部分.
我看到的一个区别是request.data只能被访问一次.此限制不适用于request.body.
我的问题是两者之间有什么不同.什么是首选,什么是DRF提供另一种做同样事情的方式的原因应该有一个 – 最好只有一个 – 明显的方式去做.
更新:限制body始终为JSON类型的用例.从不XML /图像或传统的表单数据.每个人的利弊是什么?
解决方法:
你应该使用request.data.它更灵活,涵盖更多用例,并且可以根据需要多次访问.引用文档:
Aboout request.data
REST framework introduces a Request object that extends the regular
HttpRequest, and provides more flexible request parsing. The core
functionality of the Request object is the request.data attribute,
which is similar to request.POST, but more useful for working with Web
APIs.request.POST # Only handles form data. Only works for ‘POST’ method.
request.data # Handles arbitrary data. Works for ‘POST’, ‘PUT’ and
‘PATCH’ methods.
The raw HTTP request body as a byte string. This is useful for
processing data in different ways than conventional HTML forms: binary
images, XML payload etc. For processing conventional form data, use
HttpRequest.POST.
因此,除非您想要处理二进制映像或XML有效负载,否则永远不要使用request.body,它只是一个包含请求正文的简单字符串.始终使用request.data,它将是完全解析的主体(即Python dict),它更易于处理.
内容总结
以上是互联网集市为您收集整理的python – DRF中的request.data与Django中的request.body全部内容,希望文章能够帮你解决python – DRF中的request.data与Django中的request.body所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。