Skip to main content

psycopg2-pgevents 的烧瓶扩展,使用 SQLAlchemy。

项目描述

https://badge.fury.io/py/flask-sqlalchemy-pgevents.svg https://coveralls.io/repos/github/shawalli/flask-sqlalchemy-pgevents/badge.svg?branch=master https://img.shields.io/badge/License-MIT-yellow.svg

flask-sqlalchemy-pgevents 为 Flask 提供 PostGreSQL 事件。它处理设置底层数据库、注册触发器和轮询事件。

我为什么要关心?

我有支持事件监听器的 SQLAlchemy。为什么我关心这个扩展?

SQLAlchemy 的事件监听框架非常适合监听通过 SQLAlchemy 进行的数据库更改。然而,在现实世界中,并不是每个影响数据库的数据事件都通过 SQLAlchemy 发生。一个应用程序可以由用不同语言和不同框架编写的任意数量的包、库和模块创建。如果这些非 SQLAlchemy 项目中的任何一个修改了数据库,SQLAlchemy 将不知道,因此不会通知事件侦听器这些更改。

使用此扩展,应用程序可能会收到 数据库层的事件通知。这意味着对表所做的任何更改都会被此扩展捕获并调用已注册的事件侦听器(针对受影响的表)。

为什么使用 SQLAlchemy?

您刚刚说 SQLAlchemy 与此扩展的事件方面无关……那么您为什么要使用 SQLAlchemy?

好问题!SQLAlchemy 主要用作创建与数据库的一致连接的便利机制。

此外,许多 Flask 应用程序使用 SQLAlchemy 作为它们的 ORM。因此,此扩展将与任何使用Flask-SQLAlchemy 的Flask 应用程序无缝集成。为了提供一致的 SQLAlchemy 体验,此扩展的事件侦听器装饰器被设计为与 SQLAlchemy 事件侦听器装饰器非常相似。

笔记

虽然这个扩展可能看起来与 SQLAlchemy 的事件侦听器集成,但它实际上位于该事件结构旁边。注册 PGEvents 事件监听器不会向 SQLAlchemy 的事件注册器注册事件监听器。

例子

有关此包的示例用例,请参见示例目录。

未来的计划

  • 通过一些工作,应该可以将此扩展的事件侦听器完全集成到SQLAlchemy.event中,以便事件侦听器在功能上与 SQLAlchemy 的事件侦听器相同。

  • 目前,唯一支持的事件是插入后和更新后。psycopg2-pgevent包可以与此扩展协调更新以支持其他SQLAlchemy 映射器事件

参考

作者和许可

由 Shawn Wallis 编写并在 MIT 许可下分发。

项目详情


下载文件

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

源分布

flask-sqlalchemy-pgevents-0.3.0.tar.gz (6.1 kB 查看哈希)

已上传 source

内置分布

flask_sqlalchemy_pgevents-0.3.0-py3-none-any.whl (6.5 kB 查看哈希

已上传 py3