Django Post请求不接收数据

时间:2018-02-13 01:23:21

标签: json django post

我花了好几个小时查找这个问题但没有用。

我遇到来自我发送的{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'}

1 个答案:

答案 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