使用Flask-SQLAlchemy管理数据库

*注:后半部分介绍使用Flask_migrate实现数据库迁移
1、安装Flask-SQLAlchemy
在pycharm命令行使用pip命令安装Flask-SQLAlchemy。


使用Flask-SQLAlchemy管理数据库
文章图片
图1 2、配置数据库
在flask_sql.py文件里配置数据库。
使用Flask-SQLAlchemy管理数据库
文章图片
图2 配置数据库 3、定义数据库模型并确定关联关系
以Role表和User表为例,确定两个表之间的对应关系(一对一,一对多,多对一),定义表的时候要加入对应的主外键关系,在这里,Role和User表为一对多的关系。
使用Flask-SQLAlchemy管理数据库
文章图片
图3定义 Role 和 User 模型 4、集成Python Shell
为了避免每次启动shell对话都要进行导入数据库实例和模型,我们可以做些配置,让 flask shell 命令自动导入这些对象。
使用Flask-SQLAlchemy管理数据库
文章图片
图4 添加一个shell上下文 5、创建迁移数据库
首先,要在虚拟环境中安装 Flask-Migrate:


使用Flask-SQLAlchemy管理数据库
文章图片
图6 在flask_sql.py文件中导入:


使用Flask-SQLAlchemy管理数据库
文章图片
图7 为了开放数据库迁移相关的命令,Flask-Migrate 添加了 flask db 命令和几个子命令。在新项目中可以使用 init 子命令添加数据库迁移支持:(init 执行一次就可以)
使用Flask-SQLAlchemy管理数据库
文章图片
图8 6、创建迁移脚本
在 Alembic 中,数据库迁移用迁移脚本表示。脚本中有两个函数,分别是 upgrade() 和 downgrade()。upgrade() 函数把迁移中的改动应用到数据库中,downgrade() 函数则将改动删除。Alembic 具有添加和删除改动的能力,意味着数据库可重设到修改历史的任意一点。
使用 Flask-Migrate 管理数据库模式变化的步骤如下。
(1) 对模型类做必要的修改。
(2) 执行 flask db migrate 命令,自动创建一个迁移脚本。
(3) 检查自动生成的脚本,根据对模型的实际改动进行调整。
(4) 把迁移脚本纳入版本控制。
(5) 执行 flask db upgrade 命令,把迁移应用到数据库中。
flask db migrate 子命令用于自动创建迁移脚本:


使用Flask-SQLAlchemy管理数据库
文章图片
图9 -m '文件名'*注:为了便于区分迁移脚本 ,建议每次起有意义的名字。
7、更新数据库
检查并修正好迁移脚本之后,执行 flask db upgrade 命令,把迁移应用到数据库中,这时数据库中才有表。
使用Flask-SQLAlchemy管理数据库
文章图片
图10 8、更新修改
给User表增加一列age属性,接着执行6、7操作,则修改完成(删除暂时有问题)
使用Flask-SQLAlchemy管理数据库
文章图片
图11 9、利用命令行操作插入列


使用Flask-SQLAlchemy管理数据库
文章图片
图12

使用Flask-SQLAlchemy管理数据库
文章图片
图13 别忘了commit()


使用Flask-SQLAlchemy管理数据库
文章图片
图14 修改行


使用Flask-SQLAlchemy管理数据库
文章图片
图15 删除行
【使用Flask-SQLAlchemy管理数据库】

使用Flask-SQLAlchemy管理数据库
文章图片
图16

    推荐阅读