推荐答案
在 Flask 中定义 SQLAlchemy 模型时,通常需要先初始化 SQLAlchemy 扩展,然后通过继承 db.Model 来定义模型类。每个模型类对应数据库中的一张表,类的属性对应表中的列。
// www.javascriptcn.com code example
from flask_sqlalchemy import SQLAlchemy
# 初始化 SQLAlchemy
db = 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. 初始化 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 模型。