flask - 如何从 Flask API 检测外部数据库更改
问题描述
我正在用 Flask 编写一个 API,该 API 的一部分还将为前端客户端发送 SocketIO 事件。但是由于这个 API 将从一个也由外部应用程序更新的表中读取,我需要一种机制来检测数据库更改何时发生,如果需要,然后将事件发送给客户端,以便他们更新其状态。我想将 SQLAlchemy 事件与after_update
事件一起使用,但后来我了解到它们是 ORM 事件,不能用于外部更改。所以我想知道是否有任何机制或工具可以用于此目的。也许 SQL 触发器会执行一些脚本,然后将事件发送到 Flask 或将定期读取数据库并发送更新的计时器。我使用的数据库是 MariaDB/MySQL。
我将不胜感激所有建议:)
解决方案
我的方式可能不是最好的,但您可以使用 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
对不起,如果我的方式不是最聪明的
推荐阅读
- css - 为什么 Lighthouse 考虑 clip: rect(0 0 0 0) 作为可访问性的有效解决方案
- spring - Spring Boot/Spring Kafka 中的 KafkaTemplate 抛出 NullPointerException
- python - 并行/多处理运行大型 python 脚本
- sql - 外键指的是同一张表的主键列
- terraform - 使用 terraform 创建跨帐户角色时出现错误错误:要求用户输入时出错:无法解析变量 policy_arns 的值
- python - 想要从 groovy 脚本执行 python 代码
- rest - 为什么 symfony FOSRest 包找不到合适的控制器?
- json - 输入是一个列表,输出是列表中嵌套字典的形式
- r - 如何获得两个向量之间匹配的元素比例?
- google-sheets - 在谷歌表格中,有没有办法在跨越多年的月度数据表中输出每年列出的最后一个月的值?