将更新从 Python 服务器推送到 Web 界面

Posted

技术标签:

【中文标题】将更新从 Python 服务器推送到 Web 界面【英文标题】:Pushing updates from Python server to a web interface 【发布时间】:2015-09-20 18:15:18 【问题描述】:

我已经用 python 编写了一个算法,并围绕它编写了一个 Web 界面。提交表单并启动算法后,我想在页面运行时推送和更新数据。我怎样才能做到这一点?

【问题讨论】:

我用python而不是基于网络的语言编写它的全部原因是因为我打算让它成为一个桌面应用程序。不过,我倾向于将其移植到网络上。 真正推送,使用 Tornado 或类似框架。 【参考方案1】:

要在网页之间进行实时或半实时通信,选项有

html <head>987654324@ 中使用元刷新标签在几秒钟后自动刷新页面

使用 javascript 和 AJAX HTTP GET 获取更新数据:https://api.jquery.com/jquery.get/

使用服务器发送的发送事件:http://www.html5rocks.com/en/tutorials/eventsource/basics/

使用 WebSocket:http://www.html5rocks.com/en/tutorials/websockets/basics/

除第一种方法外,所有方法都需要基本的 JavaScript 技能,除了了解服务器端 Python。后两种方法建议对实时通信有深入的了解。因此,如果您不熟悉 Web 开发,我建议您选择元刷新标签。

在服务器端,您需要启动一个进程或线程来处理长时间运行的进程,然后让该进程将其进度写入数据库。当 Web UI 自行更新时,它会从数据库中读取最新结果并将其推送/拉回浏览器。

【讨论】:

以上是关于将更新从 Python 服务器推送到 Web 界面的主要内容,如果未能解决你的问题,请参考以下文章

如何使用node js将消息从Web服务器推送到浏览器

将数据从 web 服务推送到 android 应用程序:C2DM

python 用于Octopress的Python Web Scraper将数据推送到ES

使用Angular2中的接口将对象推送到新数组中

将数据从网络服务器推送到浏览器的方法

是否可以在 SwiftUI 中提供服务并将数据推送到视图并更新 UI?