Django REST框架引入了一个扩展常规HttpRequest的请求对象,这个新的对象类型有request.data
来访问“POST”、“PUT”和“PATCH”请求的JSON数据。
但是,我可以通过访问request.body参数获得相同的数据,该参数是原始Django HttpRequest type对象的一部分。
我看到的一个区别是request.data只能访问一次。此限制不适用于request.body。
我的问题是两者有什么不同。当There should be one-- and preferably only one --obvious way to do it.
时,DRF提供了另一种方法来做同样的事情,这是什么原因
更新:限制body始终为JSON类型的用例。不要使用XML/图像或常规表单数据。各自的优缺点是什么?
你应该使用
request.data
。它更灵活,涵盖更多的用例,并且可以根据需要多次访问。引用文档:A出口^{}
关于^{}
因此,除非您想处理二进制图像或XML有效负载,否则永远不要使用
request.body
,它将只是一个简单的字符串,包含请求的主体。始终使用request.data
,这将是完全解析的主体(即Pythondict
),这将更便于处理。相关问题 更多 >
编程相关推荐