跳转到主要内容

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

项目描述

Build Status PyPi Documentation codecov.io

Falcon中间件:SQLAlchemy集成

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

安装

$ pip install falcon-sqla

用法

《falcon_sqla》会话 Manager 可以有两种使用方式

配置

  • 创建一个 SQLAlchemy 引擎。

  • 将引擎传递给 Manager() 初始化函数的第一个参数。

  • 如果将管理器用作中间件组件,请将其 middleware 属性传递给 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

Falcon 是专为 Python 开发者设计的最小化 REST API 和微服务框架,注重可靠性、正确性和可扩展性。

关于 SQLAlchemy

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

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码分发

falcon-sqla-0.4.0.tar.gz (13.0 kB 查看哈希值)

上传时间 源代码

构建分发

falcon_sqla-0.4.0-py3-none-any.whl (14.4 kB 查看哈希值)

上传时间 Python 3

由以下支持