深入理解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的创建多对多的关系表

深入浅出Flask(47):flask_sqlalchemy的应用动态绑定

深入浅出Flask(49):flask_sqlalchemy的创建一对多的关系表