使用Flask-SQLAlchemy管理数据库

*注:后半部分介绍使用Flask_migrate实现数据库迁移

1、安装Flask-SQLAlchemy

在pycharm命令行使用pip命令安装Flask-SQLAlchemy。


图1

2、配置数据库

在flask_sql.py文件里配置数据库。

使用Flask-SQLAlchemy管理数据库_第1张图片
图2 配置数据库

3、定义数据库模型并确定关联关系

以Role表和User表为例,确定两个表之间的对应关系(一对一,一对多,多对一),定义表的时候要加入对应的主外键关系,在这里,Role和User表为一对多的关系。

使用Flask-SQLAlchemy管理数据库_第2张图片
图3    定义 Role 和 User 模型

4、集成Python Shell

为了避免每次启动shell对话都要进行导入数据库实例和模型,我们可以做些配置,让 flask shell 命令自动导入这些对象。

使用Flask-SQLAlchemy管理数据库_第3张图片
图4 添加一个shell上下文

5、创建迁移数据库

首先,要在虚拟环境中安装 Flask-Migrate:


图6 

在flask_sql.py文件中导入:


使用Flask-SQLAlchemy管理数据库_第4张图片
图7

为了开放数据库迁移相关的命令,Flask-Migrate 添加了 flask db 命令和几个子命令。在新项目中可以使用 init 子命令添加数据库迁移支持:(init 执行一次就可以)

图8

6、创建迁移脚本

在 Alembic 中,数据库迁移用迁移脚本表示。脚本中有两个函数,分别是 upgrade() 和 downgrade()。upgrade() 函数把迁移中的改动应用到数据库中,downgrade() 函数则将改动删除。Alembic 具有添加和删除改动的能力,意味着数据库可重设到修改历史的任意一点。

使用 Flask-Migrate 管理数据库模式变化的步骤如下。

(1) 对模型类做必要的修改。

(2) 执行 flask db migrate 命令,自动创建一个迁移脚本。

(3) 检查自动生成的脚本,根据对模型的实际改动进行调整。

(4) 把迁移脚本纳入版本控制。

(5) 执行 flask db upgrade 命令,把迁移应用到数据库中。

flask db migrate 子命令用于自动创建迁移脚本:


图9

-m '文件名'   *注:为了便于区分迁移脚本 ,建议每次起有意义的名字。

7、更新数据库

检查并修正好迁移脚本之后,执行 flask db upgrade 命令,把迁移应用到数据库中,这时数据库中才有表。

图10

8、更新修改

给User表增加一列age属性,接着执行6、7操作,则修改完成(删除暂时有问题)

使用Flask-SQLAlchemy管理数据库_第5张图片
图11

9、利用命令行操作插入列


使用Flask-SQLAlchemy管理数据库_第6张图片
图12


使用Flask-SQLAlchemy管理数据库_第7张图片
图13

别忘了commit()


图14

修改行


使用Flask-SQLAlchemy管理数据库_第8张图片
图15

删除行


图16

你可能感兴趣的:(使用Flask-SQLAlchemy管理数据库)