用于集成Falcon应用程序与SQLAlchemy的中间件。
项目描述
Falcon中间件:SQLAlchemy集成
falcon-sqla软件包提供了一个中间件组件,用于管理SQLAlchemy会话。管理组件也可以作为更复杂用例(例如,利用多个数据库绑定)的基础构建块或配方。
安装
$ pip install falcon-sqla
用法
《falcon_sqla》会话 Manager 可以有两种使用方式
作为 Falcon 中间件组件。
作为上下文管理器,显式提供数据库会话。
配置
创建一个 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 查看哈希值)