根据文档:
request.data
返回请求体的解析内容。这类似于标准的 request.POST
和 request.FILES
属性,但有以下不同:
- 它包括所有解析后的内容,包括文件和非文件输入。
- 它支持解析除了
POST
以外的 HTTP 方法的内容,这意味着您可以访问 PUT
和 PATCH
请求的内容。
- 它支持 REST 框架的灵活请求解析,而不仅仅支持表单数据。例如,您可以处理传入的
JSON
数据,就像处理传入的表单数据一样。
我可以简单地使用 response.POST["field1"]
读取数据,还是需要对 request.body
进行一些操作?
所以我可以简单地将 request.body
用作类似于 request.POST
的字典对象吗?
一个例子 - 来自 create
方法 (视图集):
user = dict(
full_name=request.DATA['full_name'],
password=request.DATA['password'],
email=request.DATA['email'],
personal_number=request.DATA['personal_number'],
user_type=request.DATA['user_type'],
profile_id=request.DATA['profile_id'],
account_id=request.DATA['account_id']
)
编辑 1:在版本 3(最新版)中,request.DATA
已被替换为request.data
:
user = dict(
full_name=request.data['full_name'],
password=request.data['password'],
email=request.data['email'],
personal_number=request.data['personal_number'],
user_type=request.data['user_type'],
profile_id=request.data['profile_id'],
account_id=request.data['account_id']
)