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

Flask同页面提交表单后模板if判断始终走else分支问题求助

问题修复方案

后端代码错误点

  • 重复定义了三次index视图函数,Python中后定义的函数会覆盖之前的同名函数,只有最后一个index会生效,前两个完全无效。
  • 最后一个index函数给模板传参时没有指定变量名,模板中使用的变量是choice,你直接传selection的话模板根本接收不到对应变量。
  • 需确保已经从flask中导入了request对象,否则获取表单值的逻辑会报错。

修复后的main.py代码:

from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/', methods = ['GET', 'POST'])
def index():
    choice = None
    if request.method == 'POST':
        choice = request.form.get('options')
    return render_template('index.html', choice=choice)

if __name__ == '__main__':
    app.run(debug=True)

前端代码说明

你现有的index.html逻辑不需要修改,当前的form提交会刷新当前页展示结果,如果你想要完全无刷新的交互效果,可以额外引入JavaScript监听单选按钮点击事件,通过AJAX请求后端获取结果后直接更新页面内容,不需要点击提交按钮也不需要刷新页面。

验证方法

替换后端代码后启动服务,选中YES选项点击提交,即可正常看到it works!的提示内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:39:03