You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Werkzeug BuildError问题:POST请求后保留带变量的URL链接

解决werkzeug.routing.exceptions.BuildError错误并保留带cod_ver的URL

错误原因

你遇到的BuildError是因为url_for(rut_gen)用法错误:url_for的第一个参数需要是Flask视图函数的名称(比如你的copass),而非直接传入拼接好的URL路径字符串。之前你把rut_gen设为/copass/xxx这类路径,Flask无法根据该字符串匹配到对应视图函数,因此抛出错误。

修复方案

1. 修改Flask路由代码

无需生成rut_gen路径,直接将cod_ver变量传递给模板,url_for可通过视图函数名+参数反向生成正确URL:

@app.route('/copass/<string:cod_ver>', methods=['GET', 'POST'])
def copass(cod_ver):
    if request.method == 'POST':
        # 此处保留你的表单处理逻辑
        pass
    # GET和POST请求统一返回模板,传入cod_ver参数
    return render_template('user/cam_pass.html', cod_ver=cod_ver)

2. 修改HTML表单代码

在url_for中指定视图函数名copass,并传入cod_ver参数,即可生成带cod_ver的POST目标URL:

<form action="{{ url_for('copass', cod_ver=cod_ver) }}" method="post">
 <input type="hidden" name="cod_fpass" value="{{cod_fpass}}"/>
   <!--其他POST输入项-->
</form>

原理说明

url_for是Flask的反向路由工具,核心作用是通过视图函数名称和路由所需参数,自动生成符合路由规则的URL。这种方式既避免了手动拼接URL的错误,还能在路由规则修改时自动同步生成的URL,提升代码可维护性。

内容的提问来源于stack exchange,提问作者christian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 05:10:54