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

无法将HTML表单数据传递至Python代码,请求排查代码问题

问题排查与解决

我看到你的问题了,咱们来一步步找出问题所在并解决:

首先,核心问题出在请求方法和参数获取方式不匹配:

  • 你的HTML表单使用的是method="get",这意味着表单数据会通过URL查询参数传递(比如提交后URL会变成/search?search2=你输入的内容);
  • 但你的Python代码里用了request.form.get("search2"),这个方法是专门用来获取POST请求中通过表单体提交的数据的,GET请求的参数根本不会被放到request.form里,所以自然拿不到值。

解决方案1:修改Python代码适配GET请求

把获取参数的方式改成request.args.get(),这样就能正确读取GET请求的URL查询参数了:

@app.route("/search",methods=["POST","GET"])
def search1():
    var = request.args.get("search2")  # 这里替换成args
    sear = str(var)
    print(var, sear)
    return " "

解决方案2:修改HTML表单使用POST请求(更推荐)

如果不想让参数暴露在URL里,更推荐用POST方式提交表单。只需要修改HTML的method属性为post,同时保持Python代码里的request.form.get()不变就行:

<form action="{{ url_for('search1') }}" method="post" align="center">
<input type="text" name="search2" placeholder="enter details">
<button>search</button>
</form>

另外注意你原来的HTML里align:"center"是语法错误,应该改成align="center"(用等号而非冒号),这个不影响参数传递,但修正后能让表单居中显示。

验证小技巧

修改后可以这样测试:

  • 用GET方案的话,提交表单后看浏览器地址栏里有没有?search2=你输入的内容,再看Python控制台的打印;
  • 用POST方案的话,打开浏览器开发者工具的「Network」面板,提交表单后查看请求的「Form Data」,确认数据是否正确发送,再看Python控制台的输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 12:02:46