Flask 使用 PyMySQL 连接数据库

Flask 使用 PyMySQL 连接数据库

在 Flask 中使用 PyMySQL 库连接数据库可以实现高效的数据库操作。以下是具体步骤:

  1. 安装必要的库

在开始之前,需要安装 Flask 和 PyMySQL:

pip install flask pymysql
2. 配置数据库连接

在 Flask 应用中,配置数据库连接字符串。以下是示例代码:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)

配置 MySQL 数据库连接

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://用户名:密码@localhost:3306/数据库名?charset=utf8mb4'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

# 初始化 SQLAlchemy
db = SQLAlchemy(app)

注意事项:

替换 用户名、密码 和 数据库名 为实际值。

确保 MySQL 服务已启动,并且字符集设置为 utf8mb4。

  1. 定义数据模型

使用 SQLAlchemy 定义数据表模型。例如,创建一个用户表:

class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)

def __repr__(self):
return f'<User {self.username}>'
  1. 创建数据库表

通过以下命令将模型映射到数据库中:

with app.app_context():
db.create_all()
  1. 数据库操作示例

以下是增删改查的基本操作:

添加数据:

new_user = User(username='test_user', email='test@example.com')
db.session.add(new_user)
db.session.commit()

查询数据:

users = User.query.all() # 查询所有用户
user = User.query.filter_by(username='test_user').first() # 条件查询

更新数据:

user = User.query.get(1) # 获取 ID 为 1 的用户
user.email = 'new_email@example.com'
db.session.commit()

删除数据:

user = User.query.get(1)
db.session.delete(user)
db.session.commit()
  1. 常见问题及解决方案
    无法连接 MySQL: 检查 MySQL 服务是否启动,确保端口号(默认 3306)开放。
    字符集错误: 在连接字符串中添加 ?charset=utf8mb4。
    模型与表结构不一致: 使用 flask db migrate 和 flask db upgrade 更新表结构。
    通过以上步骤,您可以成功在 Flask 中使用 PyMySQL 连接并操作 MySQL 数据库。
posted @ 2025-08-28 16:06  赏金猎人小熊  阅读(29)  评论(0)    收藏  举报