Flask构建动态URL使用url_for重定向报BuildError问题咨询
报错原因
- Flask 的
url_for()方法传入的第一个参数是视图函数的名称,而非@app.route()中定义的URL路径段。你代码里/marks/<int:num>路径对应的视图函数名为dynamic,但你在重定向时给url_for传了路径段字符串marks,框架无法匹配到对应端点,因此抛出BuildError异常。
修复方案
有两种可行的修复方式,任选其一即可:
- 修改重定向语句中的端点名称为对应视图函数名
将dynamical函数下的重定向代码:
return redirect(url_for("marks",num= num1))
修改为:
return redirect(url_for("dynamic", num=num1))
- 给目标路由显式指定
endpoint参数
如果需要保留url_for里的marks参数,可以在/marks路由的装饰器中显式指定端点名称:
将marks路径的路由装饰器:
@app.route('/marks/<int:num>')
修改为:
@app.route('/marks/<int:num>', endpoint='marks')
内容的提问来源于stack exchange,提问作者Siddhant
相关产品推荐
相关产品推荐

