我不确定,为什么输入用户名后页面会被重定向到/index路由
from flask import Flask, session, redirect, url_for, request
from markupsafe import escape
app = Flask(__name__)
# Set the secret key to some random bytes. Keep this really secret!
app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'
@app.route('/index')
def index():
if 'username' in session:
return 'Logged in as %s' % escape(session['username'])
return 'You are not logged in'
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
session['username'] = request.form['username']
return redirect(url_for('index'))
return '''
<form method="post">
<p><input type=text name=username>
<p><input type=submit value=Login>
</form>
'''
@app.route('/logout')
def logout():
# remove the username from the session if it's there
session.pop('username', None)
return redirect(url_for('index'))代码来自flask的快速入门文档。
发布于 2020-09-13 20:20:27
实际上,@monsieuralfonse64已经给出了答案,所以我只是总结一下。
由于您的表单设置了method="post"属性:
@app.route('/login', methods=['GET', 'POST'])
def login():
# ...
return '''
<form method="post">
<p><input type=text name=username>
<p><input type=submit value=Login>
</form>
'''当您提交表单时,浏览器会将数据作为POST方法发送,这就是为什么它会触发if request.method == 'POST':语句,然后执行return redirect(url_for('index')),最后将页面重定向到/index。
https://stackoverflow.com/questions/63865456
复制相似问题