我有一個web應用程序,我不使用Flask登錄。如果用戶訪問鏈接並且未登錄,我將用戶重定向到登錄頁面。我在會話中實現了我的設置「用戶名」,並檢查用戶是否嘗試直接訪問某個鏈接而不登錄,即在這種情況下,用戶名將爲空。瓶頸成功登錄後如何重定向到上一頁
我試圖遵循這個 SO solution,但下一個參數總是無。我已經嘗試了兩種解決方案,但無法讓任何一個人工作。
username = session.get('username')
if username:
# go to home
else:
next_url = request.url
login_url = '%s?next=%s' % (url_for('login'), next_url)
return redirect(login_url)
第二溶液
username = session.get('username')
if username:
# go to home
else:
return redirect(url_for('login', next= request.url))
打印(request.url)=本地主機:5000/visitPage
登錄功能
if 'next' in request.args:
return redirect(next)
else:
return redirect(url_for("user.index"))
在這裏當我打印(下一個),它是無
但登錄網址有下一個參數
http://localhost:5000/login?next=http%3A%2F%2Flocalhost%3A5000%2FvisitPage
放在這裏,從第二個解決方案打印出來request.url的。如果它沒有,'url_for'跳過它,並不通過查詢參數 – theodor
我已經包括了打印。在請求和url本身有下一個請求之前,它不是request.url,而是爲什麼它是空的?我下一次檢查的方式有什麼問題嗎? – jas
是你登錄函數處理程序接受GET還是POST方法?如果它是POST,你應該檢查request.form.get('next') – theodor