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

Flask同一路由处理2个POST请求时del_meterId返回None问题求助

问题根因

删除表单的输入字段名和后端取值的键名字母大小写不匹配:
你在HTML删除表单的<input>标签里设置的name属性为del_MeterId(字母M大写),但后端代码里用request.form.get('del_meterId')(字母m全小写)取值,前后键名不一致,自然取不到值返回None。

可行修复方案


步骤1:修正HTML删除表单的字段名

将删除表单对应的input标签的name属性改成和后端取值一致的del_meterId:

<!-- 修改前 -->
<input
        type="text"
        class="form-control"
        id="del_meterId"
        name="del_MeterId"
        placeholder="Enter Meter ID #">

<!-- 修改后 -->
<input
        type="text"
        class="form-control"
        id="del_meterId"
        name="del_meterId"
        placeholder="Enter Meter ID #">

步骤2(可选优化):优化后端判断逻辑避免报错

原代码直接用request.form["form-group"]取值,如果请求中不存在该键会直接抛出400错误,改用get方法取值更稳妥,优化后的代码参考:

@auth.route('/manage-meters', methods=['GET', 'POST'])
@login_required
def manage_meters():
    if request.method == 'POST':
        form_type = request.form.get("form-group")
        if form_type == "add_meterId":
            meterID = request.form.get('add_meterId')
            # 此处添加新增电表ID的业务逻辑
        elif form_type == "del_meterId":
            meterID = request.form.get('del_meterId')
            # 此处添加删除电表ID的业务逻辑
    return redirect(url_for('auth.manage_meters'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:45:10