试图从Django中的POST解析`request.body`
由于某种原因,我无法弄清楚为什么Django无法request.body
正确处理我的内容。
它以JSON格式发送,查看Network开发工具中的选项卡将其显示为请求有效负载:
{creator: "creatorname", content: "postcontent", date: "04/21/2019"}
这正是我希望将其发送到我的API的方式。
在Django中,我有一个接受此请求作为参数的视图,仅出于测试目的,应将其打印request.body["content"]
到控制台。
当然,什么都没有打印出来,但是当我打印时request.body我得到了:
b'{"creator":"creatorname","content":"postcontent","date":"04/21/2019"}'
所以我知道我确实有尸体被寄出。
我尝试过json = json.loads(request.body)
也无济于事。json设置该变量后打印也不会返回任何内容。
回答:
在Python 3.0至Python 3.5.x中,json.loads()
它将仅接受unicode字符串,因此你必须先解码request.body
(这是一个字节字符串),然后再将其传递给json.loads()
。
body_unicode = request.body.decode('utf-8')body = json.loads(body_unicode)
content = body['content']
在Python 3.6中,json.loads()
接受bytes或bytearrays
。因此,你不需要解码request.body
(假设它以UTF-8,UTF-16或UTF-32编码)。
以上是 试图从Django中的POST解析`request.body` 的全部内容, 来源链接: utcz.com/qa/432358.html