我非常瞭解python web開發,所以請耐心等待。Flask/Werkzeug中的重定向不會改變URL
我試圖建立一個非常基本的登錄使用瓶和下面的代碼:
@app.route('/')
def index():
if verifyLoggedIn():
someData = gatherSomeData()
return render_template('main.html', data=someData)
else:
return redirect(url_for('login'))
@app.route('/login/', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
if request.form['usr'] == user and request.form['pwd'] == password:
session['user'] = request.form['usr']
session['passwd'] = request.form['pwd']
return redirect(url_for('index'))
else:
return render_template('out.html',name=request.form['usr'])
else:
return render_template('login.html')
當我轉到「本地主機:5000 /」訪問該網頁,我正確地被轉發到 「本地主機:5000 /登錄/」。但是,登錄後,頁面會加載「main.html」,但url欄仍顯示「localhost:5000/login /」。這個問題是,如果我點擊刷新按鈕來獲得'someData'的新值,我最終回到登錄屏幕。我發現任何事後操作都是這種情況。我錯過了一些非常重要的東西嗎?
你有沒有爲你的應用程序設置一個祕密(如果沒有它們,Flask的會話將無法工作)? –