【Flask】4个session(四)数据库会话对象

版权声明:欢迎交流,转载请注明出处。 https://blog.csdn.net/u013034226/article/details/84189576

在前面的博客总结了四个session中的三个:

【Flask】4个session(一)状态保持及请求/应用向下文

【Flask】4个session(二)请求上下文对象

【Flask】4个session(三)Flask_session扩展包

今天抽出时间把第四个写完,并总结一下他们之间的关系。


这第四个session是依存于Flask_SQLAlchemy的,所以我们从SQLAlchemy说起

❶什么是SQLAlchemy?

答:SQLAlchemy是一个关系型数据库框架,它提供了高层的 ORM 和底层的原生数据库的操作,让开发者不用直接和 SQL 语句打交道,而是通过 Python 对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升。

一句话:就是对数据库的抽象!

那在Flask中SQLAlchemy是怎么实现的呢?↙

❷什么是Flask-SQLAlchemy?

答:Flask-SQLAlchemy是一个简化了 SQLAlchemy 操作的flask扩展,是SQLAlchemy的具体实现,封装了对数据库的基本操作。

举例:如果说动物园是SQLAlchemy,那Flask-SQLAlchemy只是其中的一只。

Flask-SQLAlchemy详细内容见☞【Flask】什么是Flask-SQLAlchemy?

❸应用举例

指定数据库:

# 配置连接数据库
SQLALCHEMY_DATABASE_URI = 'mysql://root:mysql@localhost/数据库名'
SQLALCHEMY_TRACK_MODIFICATIONS = False

导入,并实例化sqlalchemy对象

# 导入flask_sqlalchemy
from flask_sqlalchemy import SQLAlchemy


# 实例化sqlalchemy对象
db = SQLAlchemy()

具体使用:

    # 提交数据到数据库中
    try:
        # 保存数据
        db.session.add(news)
        # 提交
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        # 回滚
        db.session.rollback()

几个session之间的关系图:

1、2、3中的“session”互相配合实现了状态保持,4中的数据库回话对象是独立的,与状态保持无关。

猜你喜欢

转载自blog.csdn.net/u013034226/article/details/84189576