django的request.POST和request.body全部都是空

我在django中写了一个登录请求打算使用他做前端的vue现在还没有去做token的保持功能,我使用postman进行post请求时,写了username和password但是后端当我打印这个request.POST和request.body时这两个均为空这个是为什么

def log_in(request):
    print(request.body)
    response = {}
    if request.method == "POST":
        username = request.POST.get("username")
        password = request.POST.get("password")
        print(username, password)
        user = auth.authenticate(username=username, password=password)  # 验证用户名和密码
 if user:
            # 如果认证成功,就让登录,这个login里面包括了session操作和cookie
 auth.login(request, user)
            return JsonResponse('登录成功了', safe=False)
        else:
            s = "用户名和密码输入错误"
 print('hahahaha')
            return JsonResponse('username', safe=False)
    return JsonResponse('登录失败了', safe=False)

image.png
image.png

阅读 6.2k
2 个回答

看你的postman,参数写的位置不对
params是填充在url上
请求体的参数是body

def log_in(request):
    print(request.body)
    response = {}
    if request.method == "POST": # 方法是post
        username = request.POST.get("username")
        password = request.POST.get("password")
        print(username, password)

代码中方法是post,在postman传参,就不能在params中了,应该是body。
如果get方法,你可以选择params中传参。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题