python - request.body 中的 Django POST 数据但不能存储在变量中

标签 python django

我正在向我的后端发布一些原始 JSON

{
    "access_token": "hU5C7so4reJOYTzPyhKPs8PWq07tb",
    "id": 3,
    "order_details": [{"meal_id": 1, "quantity": 3}, {"meal_id": 2, "quantity": 2}]
}

但是当我尝试

print (request.POST.get("access_token")) 

我收到

但是,当我这样做的时候

print (request.body)

值似乎在那里: b'{\n\t"access_token": "hU5C7so4reJOYTzPyhKPs8PWq07tb",\n\t"id": 3,\n\t",\n\t"order_details": [{"meal_id": 1, "quantity": 3}, {"meal_id": 2, "quantity": 2}]\n}'

我正在使用 Postman 发布数据。

我想像这样将访问 token 存储到某个变量中:

access_token = request.POST.get("access_token")

与发布数据

我对 Django 还是很陌生,任何帮助都会很棒。

最佳答案

Request.POST 在您发送表单数据时被填充。 见django doc , 和 this answer了解详情。 因为,在你的情况下,你发布的是“普通”json,你会在 request.body 下找到你的有效负载。 您可以将正文从二进制解码为字典,如下所示:

import json

body = json.loads(request.body.decode('utf-8'))
access_token = body.get("access_token")

关于python - request.body 中的 Django POST 数据但不能存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43178061/

相关文章:

django - Redis 到 Socket.IO

python - 密码存储为 sha1 和 pbkdf2_sha256

django 将旧日期时间字段转换为新的 1.4 日期时间,并在 SQLite 中感知时区

python - pipfile 可编辑包位置

python - 使用 cx_Freeze 将 tkinter 程序转换为 exe 并运行 exe 文件后出错

javascript - throw 500 错误

Django View : get_context_data() vs get()

python - 如何创建一个组合嵌套在元组中的列表值的索引?

python - 如何获取桌面应用程序当前的焦点元素

python - 如何使用 Python 比较 2 个非常大的矩阵