推荐答案
在 Flask 中定义 SQLAlchemy 模型时,通常需要先初始化 SQLAlchemy 扩展,然后通过继承 db.Model
来定义模型类。每个模型类对应数据库中的一张表,类的属性对应表中的列。
-- -------------------- ---- ------- ---- ---------------- ------ ---------- - --- ---------- -- - ------------ - ----- ----- --------------- ------------- - ------- - ---- -- - --------------------- ----------------- - -- -------- - ------------------------ ------------ --------------- - --- ----- - ------------------------- ------------ --------------- - -- --- --------------- ------ ------- -----------------
本题详细解读
1. 初始化 SQLAlchemy
在 Flask 中,首先需要初始化 SQLAlchemy 扩展。通常会在应用工厂函数或主应用文件中进行初始化:
from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db' # 配置数据库URI db = SQLAlchemy(app)
2. 定义模型类
模型类继承自 db.Model
,每个类属性对应数据库表中的一列。常用的列类型包括:
db.Integer
:整数类型db.String(size)
:字符串类型,size
为最大长度db.Text
:长文本类型db.Boolean
:布尔类型db.DateTime
:日期时间类型
3. 表名和列属性
__tablename__
:指定数据库中的表名,如果不指定,默认使用类名的小写形式。primary_key=True
:指定该列为主键。unique=True
:指定该列的值必须唯一。nullable=False
:指定该列不能为空。
4. __repr__
方法
__repr__
方法用于定义对象的字符串表示形式,通常在调试时使用。
5. 创建数据库表
定义模型后,可以通过以下命令创建数据库表:
with app.app_context(): db.create_all()
6. 使用模型
定义好模型后,可以通过模型类进行数据库操作,如插入、查询、更新和删除数据。
# 插入数据 new_user = User(username='john', email='john@example.com') db.session.add(new_user) db.session.commit() # 查询数据 user = User.query.filter_by(username='john').first() print(user)
通过以上步骤,你可以在 Flask 中定义和使用 SQLAlchemy 模型。