Flask中redirect(url_for())失效求助:注册页提交后无法跳转首页
问题分析与解决
你的代码里有一个关键逻辑错误,导致点击提交后无法触发跳转:
- 请求方法判断错误:你写的
if request == 'POST':是把整个request对象和字符串'POST'做比较,这永远不会成立,正确的写法应该是判断request.method是否等于'POST'。
修正后的完整代码如下:
from flask import Flask, redirect, url_for, render_template, request app = Flask(__name__) @app.route('/', methods = ['GET', 'POST']) def login(): if request.method == 'POST': # 修正判断条件 input1 = request.form.get("input1") input2 = request.form.get("input2") return redirect(url_for("home")) return render_template('lo.html') @app.route('/home', methods = ['GET','POST']) def home(): return render_template('ho.html') if __name__ == "__main__": app.run(debug=True)
另外还要检查前端lo.html的表单设置:
- 确保表单标签包含
method="POST"属性,比如:<form method="POST"> <input type="text" name="input1"> <input type="password" name="input2"> <button type="submit">提交</button> </form> - 输入框的
name属性要和后端request.form.get里的参数一致(即input1和input2),否则无法正确获取表单数据。
内容的提问来源于stack exchange,提问作者Morion
相关产品推荐
相关产品推荐

