Skip to main content
 首页 » 编程设计

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

2024年08月20日28cyq1162

我正在向我的后端发布一些原始 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")