request.POST.get()不返回

时间:2019-10-17 10:26:09

标签: python api

我正在使用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请求中,它显示:状态0“缺少手机或密码”。//缺少必需的后置参数。

1 个答案:

答案 0 :(得分:0)

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

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

相关问题