在Flask应用中使用Flask-SQLAlchemy管理数据库
发布网友
发布时间:2024-09-26 21:00
我来回答
共1个回答
热心网友
时间:2024-10-04 11:22
在 Flask 应用中使用 Flask-SQLAlchemy 管理数据库
配置 Flask-SQLAlchemy
安装 Flask-SQLAlchemy
在应用配置对象中保存数据库 URI,通常在 app.py 中配置
定义模型如 Role 和 User,在 app.py 中进行模型定义
定义关系型数据库中的关系,假设用户与角色关联,一个角色可有多个用户
操作 Flask-SQLAlchemy
启动 shell 进行数据库操作
创建表:使用 db.create_all() 在数据库中创建模型对应的表
插入行:数据暂存于内存,未直接写入数据库
将数据加至 db.session
提交 session 进行数据保存
检查 ID 属性赋值成功
修改行:如将 Admin 修改为 Administrator
删除行:调用 delete() 函数,如删除 mod_session 行
查询行:使用 Query 对象进行基本或精确查询
在视图函数中操作数据库
在视图函数内执行数据库操作
配置 index.html
在 app.py 中让 python shell 每次自动导入数据库实例和模型
使用 Flask-Migrate 迁移数据库
创建迁移仓库
初始化迁移支持
生成迁移脚本,人工检查后应用到数据库中
数据库修改步骤:修改模型,生成迁移脚本,检查并应用
还原前一个脚本对数据的改动及删除前一个迁移脚本
指定 URI 在 Flask-SQLAlchemy 中
直接指定 URI 字符串
使用环境变量指定
使用配置文件指定
常用的列类型和列选项
列选项:主键、唯一性约束、可空性、默认值、索引等
列类型:整数、字符串、日期时间、布尔值、浮点数等
SQLAlchemy 关系选项
backref:在关联模型中自动创建反向引用
lazy:指定关系的加载方式
cascade:指定关系操作的级联行为
primaryjoin:指定主键连接条件
secondary:指定多对多关系中的关联表
uselist:关系是否使用列表存储结果
通过以上步骤,Flask-SQLAlchemy 实现了灵活、高效的数据库管理,适用于 Flask 应用程序。