request.POST.get()始终返回None

时间:2016-01-02 20:00:44

标签: django django-views

我是django的新手,你今天我就可以开始了

当我使用postman使用参数发出POST请求时,我总是收到无电子邮件,密码,名称和其他变量

@csrf_exempt
def signup(request):
    if request.method != 'POST':
        raise Http404
    email = request.POST.get('email')
    password = request.POST.get('password')
    name = request.POST.get('name')
    os = request.POST.get('os')
    device_id = request.POST.get('device_id')
    version = request.POST.get('version')
    device = request.POST.get('device')
    print "email value is = %s", email
    user=AppUser.objects.get_or_create(email=password,password=password)
    user.save()
    return HttpResponse(json.dumps({"result": True}), content_type='application/json')

请帮助,为什么它总是显示无,即使我从POST请求传递电子邮件和其他参数的值

以下是使用POST的帖子man的正文请求

http://127.0.0.1:8000/v1.0/signup/?email=nagu@nagu.com&password=nagendra&name=nagendra&os=android&device_id=12345678&version=23.0.1&device=samsung

低于邮差的屏幕截图

enter image description here

4 个答案:

答案 0 :(得分:5)

您添加到网址的参数是GET参数,而不是POST参数。 POST个参数位于请求正文中,并且不会通过网址显示。即使您使用原始网址指定的请求方法为POST,也不会发送任何数据。

如果您在命令行中执行以下操作:

curl --data "email=nagu@nagu.com&password=nagendra&name=nagendra&os=android&device_id=12345678&version=23.0.1&device=samsung" http://127.0.0.1:8000/v1.0/signup/

它应该将POST数据发送到您的视图。

请查看此SO question并回答POST请求的递送方式。

答案 1 :(得分:1)

我在chrome中尝试过postman。 以下是截图。 这对你有用吗?

postman in chrome

答案 2 :(得分:0)

请确保邮递员身体参数正确无误 应该是“x-www-form-urlencoded”。 THKS!

答案 3 :(得分:0)

检查标题 你或许可以有

内容类型设置为应用/ JSON