深入理解Flask(2.使用 SQLAlchemy 创建数据模型)
Posted 记忆足迹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解Flask(2.使用 SQLAlchemy 创建数据模型)相关的知识,希望对你有一定的参考价值。
Flask 是一个基于 Python 的 Web 框架,它的设计目的是提供 Web 开发所需要的最小功能子集。它与其他框架的不同之处在于:它没有绑定诸如数据库查询或者表单处理等功能库,以及它们所组成的整个生态系统。它倾向于对这些功能的实现方式不做任何限定。
模型(models)是对数据抽象并提供通用访问接口的一种方式。
为了基于数据库抽象出数据模型,我们要用一个叫做 SQLAlchemy 的 Python包。
为了把 SQLAlchemy 绑定到我们的应用上下文中,我们可以使用 Flask SQLAlchemy。
一、设置 SQLAlchemy
默认使用的数据库是 SQLite ,如果需要其他数据库,请自行安装数据库。
1. Python 安装包
使用 pip 安装 Flask SQLAlchemy:$pip install flask-sqlalchemy
如果是其他数据库,需要自行安装一些特定的包作为 SQLAlchemy 与你所选的数据库之间的连接器。
2.Flask SQLAlchemy
SQLAlchemy 通过一个特殊的数据库URI 来创建数据库连接,可上网查找,之后我们要将该 URI 添加到 config.py 文件中的 DevConfig 中去(也就是对应的配置文件中的对应函数中)。
二、我们的第1个数据模型
1.创建数据模型
首先,要在主程序(main.py)文件中将我们的 app 对象传给 SQLAlchemy, 将 SQLAlchemy 初始化:
然后在该程序中创建一个模型(例如User),它会跟相应的 user 表进行交互。
最后,创建 User 表:
先更新 manage.py,在没新增一个数据模型时将该模型导入并添加到返回的 dict 中。
然后通过运行命令行来创建表单:
$ python manage.py shell
>>> db.create_all()
2.CRUD:数据存储策略中的4个基本功能类型:添加、读取、修改和删除。
3.数据模型之间的关联
4. SQLAlchemy 会话对象的方便之处
会话(session)可以被简单地描述为用来跟踪数据模型变化的对象,它还可以根据我们的指令将这些变化提交进数据库。同时,会话可以用来控制事物,可以避免一些常见的错误(如在保存外键时指向了不存在的对象及自动记录数据的跟跌。)
5.使用 Alembic 进行数据库迁移
Alembic是一个可以根据我们的SQLAlchemy模型的变换自动创建数据库迁移记录的工具,但是我们不会直接使用Alembic,而是使用 Flask-Migrate。
$ pip install Flask-Migrate
之后的操作可上网查询。
以上是关于深入理解Flask(2.使用 SQLAlchemy 创建数据模型)的主要内容,如果未能解决你的问题,请参考以下文章
深入浅出Flask(46):flask_sqlalchemy的简单关系
深入浅出Flask(52):flask_sqlalchemy的同时连接多个数据库
深入浅出Flask(51):flask_sqlalchemy的增删查改
深入浅出Flask(50):flask_sqlalchemy的创建多对多的关系表