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

如何配置MySQL数据库存储Flask表单提交的name与email数据

Flask表单数据存入MySQL实现方案

1. 初始化MySQL数据库

先登录你的MySQL服务,创建存储数据的数据库和表:

CREATE DATABASE IF NOT EXISTS form_db;
USE form_db;
CREATE TABLE IF NOT EXISTS users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE
);

这个表用自增的id作为主键,name和email设为必填,email加唯一约束防止重复提交。

2. 安装依赖包

在你的Python环境中安装所需的库:

pip install flask flask-mysql

3. Flask后端代码(app.py)

这段代码负责配置数据库连接、处理表单提交请求,并将用户输入的数据插入MySQL:

from flask import Flask, render_template, request, redirect, url_for
from flask_mysql import MySQL

app = Flask(__name__)

# 配置MySQL连接信息
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = '你的MySQL用户名'
app.config['MYSQL_PASSWORD'] = '你的MySQL密码'
app.config['MYSQL_DB'] = 'form_db'

mysql = MySQL(app)

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        # 从提交的表单中获取用户输入的name和email
        name = request.form['name']
        email = request.form['email']

        # 执行数据库插入操作
        cur = mysql.connection.cursor()
        cur.execute("INSERT INTO users (name, email) VALUES (%s, %s)", (name, email))
        mysql.connection.commit()
        cur.close()

        # 重定向回表单页,避免刷新重复提交
        return redirect(url_for('index'))
    
    # GET请求时渲染表单页面
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

核心逻辑:通过request.form直接获取用户在HTML表单中输入的数据,而非手动硬编码,这正是你需要的实现方式。

4. HTML表单页面(templates/index.html)

在项目根目录创建templates文件夹,新建index.html文件:

<!DOCTYPE html>
<html>
<head>
    <title>用户信息收集</title>
</head>
<body>
    <h2>填写你的信息</h2>
    <form method="POST">
        <div>
            <label>姓名:</label>
            <input type="text" name="name" required>
        </div>
        <div style="margin: 10px 0;">
            <label>邮箱:</label>
            <input type="email" name="email" required>
        </div>
        <button type="submit">提交</button>
    </form>
</body>
</html>

注意:表单的method设为POST,输入框的name属性要和后端request.form中调用的键完全一致,required属性实现前端必填验证。

5. 验证数据是否存入数据库

  1. 运行app.py,访问http://localhost:5000
  2. 填写表单并提交
  3. 登录MySQL,执行查询语句:
SELECT * FROM form_db.users;

此时就能看到你提交的name和email已经存储在数据库表中了。

额外提示

  • 确保MySQL服务处于运行状态
  • 替换代码中MySQL的用户名和密码为你自己的账号信息
  • 可以添加错误捕获逻辑,比如处理邮箱重复提交时的异常,提升程序稳定性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 11:41:09