我已经建立了一个简单的项目,并且在发出发布请求时,预期将根据用户输入的值返回响应。
我正在用邮递员测试我的api逻辑。
此刻,无论我输入什么值,都将返回相同的json响应。这不是预期的逻辑。
views.py:
def function(request):
if request.method == 'POST':
if request.POST.get("number") == 1:
print("Number is 1")
return JsonResponse({'message':'Number is 1'})
else:
print("Number is not 1")
return JsonResponse({'message':'Number is not 1'})
即使number的值等于1,也会返回消息:Number不为1。
邮递员请求:
{
"number": 1
}
谢谢。
答案 0 :(得分:1)
来自docs:
如果您需要访问请求中发布的原始或非格式数据,请通过HttpRequest.body属性访问。
由于您要发送的数据是“非格式”数据,因此您需要使用request.body
:
import json
def function(request):
if request.method == 'POST':
data = json.loads(request.body)
if data.get("number", 0) == 1:
print("Number is 1")
return JsonResponse({'message':'Number is 1'})
else:
print("Number is not 1")
return JsonResponse({'message':'Number is not 1'})