首页 > 解决方案 > 如何从 Flask API 检测外部数据库更改

问题描述

我正在用 Flask 编写一个 API,该 API 的一部分还将为前端客户端发送 SocketIO 事件。但是由于这个 API 将从一个也由外部应用程序更新的表中读取,我需要一种机制来检测数据库更改何时发生,如果需要,然后将事件发送给客户端,以便他们更新其状态。我想将 SQLAlchemy 事件与after_update事件一起使用,但后来我了解到它们是 ORM 事件,不能用于外部更改。所以我想知道是否有任何机制或工具可以用于此目的。也许 SQL 触发器会执行一些脚本,然后将事件发送到 Flask 或将定期读取数据库并发送更新的计时器。我使用的数据库是 MariaDB/MySQL。

我将不胜感激所有建议:)

标签: flasksocket.ioflask-sqlalchemy

解决方案


我的方式可能不是最好的,但您可以使用 sqlite 编写函数而不是使用它们来创建自己的示例:

def dbWrite(data, params=None):
   # db code here for writing
   written = True
   # or you could just write all the code that you were going to do on the update right here

对不起,如果我的方式不是最聪明的


推荐阅读