我花了好几个小时查找这个问题但没有用。
我遇到来自我发送的{html页面{'username': 'username'}
的帖子数据的问题,但是当我发出请求.POST.get('用户名')时,它返回no,我已尝试{{ 1}}
{username, 'username'}
控制台开发服务器
def test_post(request):
if request.method == 'POST':
print(request.POST.get('username'))
return HttpResponse("Good!")
else:
return HttpResponse("Bad.")
我发送的数据为None <<<<
[12/Feb/2018 19:39:53] "POST /test_post HTTP/1.1" 200 5
(edited)
这是正常的,为什么我无法让它显示出来?
这是从页面调用的Javascript代码:
{'username': 'username'}
答案 0 :(得分:3)
在django视图test_post
中,request.POST是一个查询字典(又名字典)。
当您使用方法.get(key)
时,它会在字典中查找key
并返回与该键对应的值。
在test_post
方法中,您编写了request.POST.get('username')
,这意味着字符'username'
作为密钥应该出现在POST
字典中。
当您使用Javascript进行POST时,执行data = {username: username};
时,您实际上是在使密钥动态化。
EG。当你输入&#34; Bob&#34;在用户名中点击提交,变量data
将是{'Bob': 'Bob'}
相反,你应该这样做:
data = {'username': username} //This ensures that the key remains same