将数据从数据库推送到 Flask Web 应用程序和 Android 设备

Push data from database to flask web app and Android device

如何在 Flask 网站上显示实时数据库变化? 像on_update和on_insert一样,数据会推送到网站供用户查看。

我想从 IOT 设备获取警报并将其插入数据库,被该设备订阅的用户应该会收到实时警报。 所以我想

>IOT detects
>HTTP POST to database
>Flask App detects the database change
>push to clients on web app and android

我制作了一个使用 flask-sqlalchemy 查询数据库的网络应用程序,但仅此而已,这些应该是实时警报!我很沮丧,已经一个星期了。我哪儿也去不了,我现在很迷茫。

>polling
>web sockets
>SSE
>flask sse
>use AJAX
>use JQUERY

HHHOOOOOWWWWW??????大多数示例都是针对聊天应用程序的,我看不到任何可以监听数据库更改并将其发送给客户端的方法;(

一个非常简单的实现方法是使用像 pusher.com 这样的事件 SaaS。这应该可以让您立即进行设置。他们有许多不同语言的示例,它应该完全符合您的需要。

你提到你看到了很多 chat-apps 作为例子。这很正常,因为它们几乎是 event-based 系统的“hello-world”。而这正是您要寻找的。 事件发生了,你想触发事件。

对于聊天,事件是:“用户输入了一条消息”,触发的操作是:“向每个 connected/subscribed 用户显示”。

除了像 pusher.com 这样的托管服务,您还可以推出自己的服务。所有必需的技术都是免费和开放的标准。您可以为此使用 websockets 或 WebRTC。 Websockets 更容易,但如果你有 many 个打开的通道,它会更棘手。另一方面,WebRTC 可以扩展,但设置起来有点复杂。但是您不需要视频或音频,这样更容易。

您提到“轮询”,我不确定您指的是“正常”轮询还是 long-polling Comet。这当然是一种选择。这是最简单的解决方案,但不是最干净的。

SSE 似乎也是一个有效的选择。虽然我还没有个人经验。但它似乎是为此设计的 use-case.

AJAX 和 jQuery 关系不大。 AJAX 只是使用 XmlHTTPRequest 编程的总称,用于上述所有解决方案。 jQuery只是一个JS框架,与任务完全无关

长话短说:您提到的所有选项都允许您执行此操作。我建议查看 pusher.com 开始。他们的示例正是您所需要的。他们的免费计划对于个人项目来说已经非常慷慨了。如果您的应用程序超出了免费计划的范围,您可以付费或推出自己的解决方案。