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

Flask处理POST请求无响应问题排查求助

表单POST数据到Flask后端无响应问题排查

我已大量查阅资料,认为代码逻辑没问题但无法正常运行:通过以下HTML表单以POST方法向本地主机提交温度和湿度数据,但后端insert.py接收不到任何内容,也没有输出。

前端HTML代码

<body>
    <div class="middle">
        <form action="insert.py" method="post">
            <input type="number" class="num" name="temp" placeholder="temperature" />
            <input type="number" class="num" name="hum" placeholder="humidity"/>
            <input type="submit" class="btn" name="insert" value="send">
        </form>
    </div>
</body>

后端insert.py代码

#!C:\Users\Edris\AppData\Local\Programs\Python\Python310\python.exe
print("Content-Type: text/html\n\n")
from flask import Flask, request

app = Flask(__name__)

@app.route('/POST', methods=['POST'])
def form():
    if request.method=="POST":
        temp = request.form.get('temp')
        print("insert OK")
        print(temp)

问题分析

  1. 路由与表单action不匹配:表单的action指向insert.py,但Flask定义的路由是/POST,两者完全不对应,导致请求无法被后端正确接收。
  2. Flask应用未启动:代码中缺少Flask服务启动的关键代码,运行脚本后不会启动Web服务,自然无法处理请求。
  3. CGI头与Flask冲突:开头的print("Content-Type: text/html\n\n")是CGI脚本的写法,Flask框架会自动处理响应头,手动输出会导致响应格式错误。
  4. 输出方式错误:后端用print语句无法将内容返回给前端,Flask需要通过return语句返回响应内容。

修正方案

修正后的insert.py

#!C:\Users\Edris\AppData\Local\Programs\Python\Python310\python.exe
from flask import Flask, request

app = Flask(__name__)

# 修改路由为/insert,和表单action对应
@app.route('/insert', methods=['POST'])
def handle_form():
    if request.method == "POST":
        temp = request.form.get('temp')
        hum = request.form.get('hum')
        # 用return返回内容到前端
        return f"insert OK<br>温度: {temp}<br>湿度: {hum}"

# 添加启动代码,运行脚本后启动Flask服务
if __name__ == '__main__':
    app.run(debug=True)

修正后的HTML表单

<body>
    <div class="middle">
        <!-- action指向Flask的路由/insert -->
        <form action="http://localhost:5000/insert" method="post">
            <input type="number" class="num" name="temp" placeholder="temperature" />
            <input type="number" class="num" name="hum" placeholder="humidity"/>
            <input type="submit" class="btn" name="insert" value="send">
        </form>
    </div>
</body>

运行步骤

  1. 运行修正后的insert.py,控制台会显示Flask服务启动在http://localhost:5000。
  2. 在浏览器中打开修正后的HTML页面,输入温度和湿度后点击send,即可看到后端返回的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:30:51