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

Flask足球锦标赛应用表单提交按钮失效问题求助

Flask表单提交无响应问题排查与修复

核心问题分析与修复步骤

你的代码存在几个关键错误,导致表单提交后无响应:

  1. render_template用法错误
    你错误地在render_template后调用.format(),Flask的render_template本身支持直接传递模板变量,无需额外格式化。修正写法:

    # 错误写法
    return render_template('display.html').format(feedback = feedback)
    # 正确写法
    return render_template('display.html', feedback=feedback)
    

    同理,return render_template('form.html').format(feedback="")需改为return render_template('form.html', feedback="")

  2. 表单提交条件的潜在依赖问题
    判断条件request.method == "POST" and request.form.get('submit')要求表单的提交按钮必须带有name="submit"属性。如果form.html里的提交按钮未设置该属性,request.form.get('submit')会返回None,导致条件不成立,无法进入POST处理逻辑。
    确保form.html的表单结构正确,示例:

    <form method="POST" action="/form">
        <input type="text" name="name" placeholder="输入名称">
        <button type="submit" name="submit">提交</button>
    </form>
    
  3. 模板变量接收问题
    display.html需要正确接收feedback变量,示例写法:

    <h1>{{ feedback }}</h1>
    

修复后的完整视图函数

@app.route("/form", methods = ['GET','POST'])
def form():
    if request.method == "POST" and request.form.get('submit'):
        string = request.form.get('name')
        feedback = f"Hello {string}! Thank you for submitting!"
        return render_template('display.html', feedback=feedback)
    else:
        return render_template('form.html', feedback="")

额外注意事项

  • 确保所有模板文件(home.html、teams.html等)存放在Flask默认的templates目录下
  • 输入框的name属性必须与request.form.get('name')中的名称一致(此处为name)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 19:01:18