【问题标题】:request.POST.get() returning nonerequest.POST.get() 返回无
【发布时间】:2020-02-14 05:49:31
【问题描述】:

我正在使用 Django 运行一个网站。我正在尝试登录,但它没有返回任何内容,并且我没有收到任何错误。显示200个状态码。

这是我的views.py代码:

def user_login(request):
    datas= {'log':False}
    if request.method == "POST":
        usern=request.POST.get('Username')
        passw=request.POST.get('password')
        response = requests.post(url='http://www.onebookingsystem.com/productionApi/API/Admin/login.php',data={"Username":usern,"password":passw})
        json_data = response.json()
        if json_data['status'] == 1:
            user=authenticate(Username=usern,password=passw)
            login(request,user)
            range_yearly = 0
            range_monthly = 0
            respo = requests.get(url='http://www.onebookingsystem.com/productionApi/API/Admin/admin_dashboard.php')
            data_dash = json.loads(respo.text)

当我在 POST HTTP 请求中运行时,它显示成功登录,但是 在 GET HTTP 请求中,它显示:Status 0 "mobile or password is missing".//required post params is missing.

【问题讨论】:

  • 不应该是Username/Password(大写开头)还是username/password(全小写)?

标签: python api


【解决方案1】:

这可能是因为您使用的请求没有会话存储。 你可以试试这个(未经测试的)方式:

def user_login(request):
    # Create client with session storage to store session cookies
    client = requests.Session()

    datas= {'log':False}
    if request.method == "POST":
        usern=request.POST.get('Username')
        passw=request.POST.get('password')

        # client stores session cookie at login
        response = client.post(url='http://www.onebookingsystem.com/productionApi/API/Admin/login.php',data={"Username":usern,"password":passw})

        # you can check that with
        # print(client.cookies)
        json_data = response.json()
        if json_data['status'] == 1:
            user=authenticate(Username=usern,password=passw)
            login(request,user)
            range_yearly = 0
            range_monthly = 0

            # client should be able to access because of its stored session cookie
            respo = client.get(url='http://www.onebookingsystem.com/productionApi/API/Admin/admin_dashboard.php')
            data_dash = json.loads(respo.text)

More information

【讨论】:

  • 感谢您的回复。我尝试使用会话,但它没有返回。并且没有错误。它显示 200 状态代码。它只是返回相同的登录页面。
  • 你能提供一个测试帐户还是我可以注册一个(在哪里)?
猜你喜欢
  • 2020-08-09
  • 2019-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多