将数据从数据库推送到flask网络应用程序和Android设备



如何在flask网站中显示实时数据库更改?像on_update和on_insert一样,数据会被推送到网站上供用户查看。

我想从物联网设备获得警报,并将其插入数据库,子设备的用户应该获得实时警报。所以我认为

>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

hhooooowwwww??????大多数例子都是针对聊天应用程序的,我认为没有任何方法可以监听数据库更改并将其发送给客户端;(

实现这一点的一个非常简单的方法是使用类似pusher.com的事件SaaS。他们有许多不同语言的例子,它应该完全适合你的需要。

你提到你看到了很多聊天应用程序作为例子。这很正常,因为它们几乎是;你好世界";基于事件的系统。这正是你想要的。发生事件,并且您希望在该事件上触发

对于聊天,事件是:;用户输入一条消息";并且触发的动作是:;将其显示给每个连接/订阅的用户";。

在pusher.com这样的托管服务旁边,你可以自己滚动。所有必需的技术都是免费和开放的标准。您可以使用websockets或WebRTC进行此操作。Websockets更容易,但如果您有多个开放通道,则会更棘手。另一方面,WebRTC可以扩展,但设置起来有点复杂。但你不需要视频或音频,这会让它变得更容易。

你提到";轮询";我不确定你的意思是否是";正常的";轮询或长轮询,如Comet。这当然是一种选择。这是最简单的解决方案,但不是最干净的。

SSE似乎也是一个有效的选择。虽然我还没有亲身经历。但它似乎是为这个用例设计的。

AJAX和jQuery的关联性较小。AJAX只是使用XmlHTTPRequest进行编程的一个总括术语,并用于上述所有解决方案。jQuery只是一个JS框架,与任务完全无关。

长话短说:你提到的所有选项都允许你这样做。我建议先看看pusher.com。他们的例子正是你所需要的。他们的免费计划对于个人项目来说已经非常慷慨了。如果您的应用程序超出了免费计划,您可以付费,也可以推出自己的解决方案。

最新更新