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

Flask提交表单后结果页显示None,如何实现跨页展示用户输入内容

问题排查

你这里一共存在3处需要修正的错误:

  • 第一处:home.html 中的姓名输入框缺少 name 属性,表单提交时只会把带有 name 属性的表单字段内容传递到后端,你当前只设置了 id="name",后端无法拿到对应值。
  • 第二处:main.py 中 home 视图的处理逻辑存在冗余问题,你在home视图里接收POST参数后用 redirect 跳转,redirect 默认发起的是GET请求,参数会以查询字符串的形式拼接在url后,而你在 result 视图里从 request.form 取参数,自然拿不到值。
  • 第三处:result 视图的取参逻辑和实际传参方式不匹配。

方案1(最简方案,无需中间跳转)

  1. 修正home.html的输入框,添加name="name"属性:
<input type="text" class="name-input name mb-3" id="name" name="name">
  1. 删掉home视图里的POST处理逻辑,仅处理GET请求即可:
@app.route('/', methods=['GET'])
def home():
    return render_template('home.html')
  1. result 视图代码保持原有内容即可,表单直接用POST方法提交到/result路由,request.form.get('name')可以正常拿到输入的姓名。

方案2(保留原有跳转逻辑)

如果你确实需要保留经过home视图跳转的逻辑,按如下修改:

  1. 同样先修正home.html的输入框,添加name="name"属性。
  2. 修改result视图的取参逻辑,从GET请求的查询参数中取值:
@app.route("/result", methods=['GET'])
def result():
    name = request.args.get('name')
    return render_template("result.html", name=name)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 22:39:04