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

如何在Flask应用中实现用户表单提交时发送POST请求并获取数据?

如何通过HTML表单触发Flask的POST请求?

要让用户填写表单后自动发送POST请求,核心是在HTML表单中指定正确的请求方法和目标端点,以下是具体实现步骤:

1. 编写HTML表单

在你的模板文件(比如templates/form.html)中,创建一个<form>标签,必须设置两个关键属性:

  • method="POST":明确告诉浏览器用POST方法提交数据
  • action="/your-endpoint":指定数据要发送到的Flask路由路径(替换成你实际的端点,比如/submit)

示例表单代码:

<form method="POST" action="/submit">
    <label for="username">用户名:</label>
    <input type="text" id="username" name="username" required>
    
    <label for="email">邮箱:</label>
    <input type="email" id="email" name="email" required>
    
    <button type="submit">提交</button>
</form>
  • 每个表单控件的name属性很重要,Flask后端会通过这个属性获取对应的值(比如request.form.get('username'))
  • required属性是可选的,用来让浏览器做基础的字段校验

2. 配置Flask后端路由

确保你的Flask路由同时支持GET和POST方法:

from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/submit', methods=['GET', 'POST'])
def submit():
    if request.method == 'POST':
        # 处理POST请求中的数据
        username = request.form.get('username')
        email = request.form.get('email')
        # 这里可以添加数据处理逻辑,比如存入数据库、返回结果等
        return f"收到用户数据: {username}, {email}"
    # 如果是GET请求,返回表单页面
    return render_template('form.html')

if __name__ == '__main__':
    app.run(debug=True)
  • methods=['GET', 'POST']:允许该路由接收两种请求方法,用户访问页面时是GET,提交表单时是POST
  • 当请求方法为POST时,通过request.form获取表单数据

3. 完整流程说明

用户访问http://localhost:5000/submit时,Flask返回表单页面(GET请求);用户填写完表单点击「提交」按钮,浏览器会自动将表单数据打包成POST请求发送到/submit端点,后端接收到后处理数据并返回响应。

你之前用curl能成功,是因为手动指定了POST方法和数据,而HTML表单就是让浏览器自动完成这个动作的前端载体。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 09:36:27