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

如何用Python Flask接收HTTP POST请求并获取表单用户输入

表单提交到Flask后端的实现方案

首先明确:你当前使用的是Python Flask技术栈,和PHP无关,不需要使用PHP相关逻辑处理表单。现有代码存在3处基础错误,是导致无法拿到输入值的核心原因:

  • 字段名不匹配:HTML输入控件的name属性为website,但后端代码中读取的是request.form['foo'],字段标识不一致无法取值
  • 前端缺少完整表单结构:单独的<input>标签无法自主发起POST请求,必须包裹在<form>标签内,明确指定提交地址和请求方法
  • 后端参数读取逻辑鲁棒性差:直接通过request.form['字段名']的方式读取参数,若前端未传对应字段会直接抛出400错误,无容错能力

分步实现

1. 修正Flask后端代码

调整路由路径、参数读取逻辑,预留后续脚本处理入口:

from flask import Flask, request
app = Flask(__name__)

# 如需跨域部署(前后端端口/域名不一致),放开下方两行注释
# from flask_cors import CORS
# CORS(app)

@app.route('/submit', methods=['POST'])
def result():
    # 用get方法读取参数,未传值时默认返回空字符串,避免服务端报错
    user_input = request.form.get('website', '').strip()
    if not user_input:
        return '提交内容不能为空', 400
    # 下方编写调用Python分析脚本的业务逻辑即可
    print(f"接收到用户输入:{user_input}")
    return '内容提交成功'

if __name__ == '__main__':
    # 本地调试可开启debug模式,生产部署必须关闭
    app.run(host='127.0.0.1', port=5000, debug=True)

2. 修正前端表单代码

补全form标签结构,匹配后端接口地址和字段名:

<!-- action属性填写后端接口的实际访问地址,method必须指定为POST -->
<form action="http://127.0.0.1:5000/submit" method="POST">
    <input class="input-text-input" type="text" placeholder="请输入待分析内容" name="website">
    <button type="submit">提交</button>
</form>

优化说明

  • 若需要无刷新异步提交,可通过前端JS监听表单提交事件,用fetch或XMLHttpRequest发起POST请求,无需页面跳转
  • 生产环境部署时建议关闭Flask自带的开发服务器,改用gunicorn等生产级WSGI服务
  • 若提交内容包含特殊字符或大段文本,可根据需求调整请求编码格式,普通文本场景用默认的application/x-www-form-urlencoded即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:21:15