Flask ORM简介

Flask常用ORM:Flask-SQLAlchemy
作用:

将数据库表映射为 Python 类,通过对象操作数据库。


1. 初始化

1
2
3
4
5
6
7
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://user:pass@host/db"

db.init_app(app)

2. 定义模型

1
2
3
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))

对应:

User类  → users表
id属性 → id字段

3. CRUD(create/read/update/delete)

新增:

1
2
3
user = User(name="tom")
db.session.add(user)
db.session.commit()

查询:

1
2
User.query.all()
User.query.filter_by(name="tom").first()

修改:

1
2
user.name="jack"
db.session.commit()

删除:

1
2
db.session.delete(user)
db.session.commit()

4. 关联关系

一对多:

1
2
3
4
5
6
user_id = db.Column(
db.Integer,
db.ForeignKey("user.id")
)

user = db.relationship("User")

5. 生产注意

  • 使用Flask-Migrate 管理表结构变更
  • 控制 session 生命周期
  • 配置数据库连接池
  • 避免 N+1 查询
  • 复杂 SQL 使用原生 SQL

核心:

Model(对象) → ORM → SQL → 数据库