Skip to main content

用于将 Falcon 应用程序与 SQLAlchemy 集成的中间件。

项目描述

构建状态 派皮 文档 编解码器.io

Falcon 中间件:SQLAlchemy 集成

falcon-sqla包提供了一个用于管理 SQLAlchemy 会话的中间件组件。管理器组件还可以用作基础构建块或更复杂用例的配方,例如利用多个数据库绑定的应用程序。

安装

$ pip install falcon-sqla

用法

falcon_sqla会话管理器可以通过两种方式使用

配置

  • 创建一个 SQLAlchemy 引擎。

  • 将引擎作为第一个参数传递给Manager()初始化程序。

  • 如果将管理器用作中间件组件,请将其中间件 属性传递给 falcon.App的中间件列表:

engine = create_engine('dialect+driver://my/database')
manager = falcon_sqla.Manager(engine)

app = falcon.App(middleware=[manager.middleware])

# The database session will be available as req.context.session

上下文管理器

falcon_sqla.Manager还可以使用session_scope()上下文管理器显式提供数据库会话:

# Somewhere inside a responder
with self.manager.session_scope(req, resp) as session:
    # Use the session
    # <...>

session_scope()也可以用作请求-响应周期之外的独立会话上下文:

with self.manager.session_scope() as session:
    # Use the session
    # <...>

自定义垂直分区

开箱即用支持简单随机选择读取和写入数据库副本。使用add_engine()方法指示Manager在运行时绑定选择逻辑中包含提供的引擎:

manager = falcon_sqla.Manager(engine)

read_replica = create_engine('dialect+driver://my/database.replica')
manager.add_engine(read_replica, 'r')

可以重写Manager.get_bind()方法来为更复杂的用例实现自定义引擎选择逻辑。

另请参阅此 SQLAlchemy 配方: 自定义垂直分区

关于猎鹰

Falcon是面向 Python 开发人员的极简 REST API 和微服务框架,专注于大规模的可靠性、正确性和性能。

关于 SQLAlchemy

SQLAlchemy是 Python SQL 工具包和对象关系映射器,它为应用程序开发人员提供了 SQL 的全部功能和灵活性。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

falcon-sqla-0.3.0.tar.gz (10.8 kB 查看哈希

已上传 source

内置分布

falcon_sqla-0.3.0-py3-none-any.whl (14.3 kB 查看哈希

已上传 py3