python - 我如何实时更新 html 元素?

标签 python html bottle comet

堆栈溢出!

我目前正在开发一个项目,您可以通过网页请求音乐,并通过主机播放音乐。例如,如果您的项目在 Raspberry Pi 上运行,那么您可以通过其 Web 界面请求音乐,并且它将添加到请求列表中。我计划使用 Bottle 模块在 python 中进行此操作。考虑到这一点,我想要一个实时的“正在播放”元素来显示当前歌曲的标题。另外,我希望用户能够看到接下来出现的歌曲并且该列表会实时更新。例如,当下一首歌曲开始播放播放列表中的热门歌曲时,就会成为“正在播放”区域中的内容,并且整个播放列表会在浏览器中实时更改。或者,如果用户请求一首新歌曲,它会被实时添加到播放列表的底部。这样,用户无需刷新页面即可查看更新。

我在网上阅读了有关使用 comet 的信息,但找不到太多有关使用 Bottle 和 python 执行此操作的信息。有没有办法做到这一点?如果是这样,有人可以引导我举一个以某种方式使用它的例子吗?我没有太多使用 JavaScript(或者一般的 Web 开发)的经验,但我对 Python 非常熟悉。我对 html 很擅长,可以创建一些基本的网页。我以前做过 Web 界面,但没有一个带有实时统计信息(例如播放列表和“正在播放”字段)。因此,如果有一个可以使用 Python 轻松完成的答案,我会很高兴!

谢谢!

最佳答案

您在这里寻找的是 WebSockets! :) 在这种情况下他们会工作得很好。 Bottle 有一个 websocket 服务器包,叫做 gevent-websocket您可以找到一个使用 Bottle 的简单教程 here在 Bottle 文档中。用js写一个websocket客户端应该很简单,几行就可以了(我自己之前也这样做过。)你可以找到一个mdn tutorial这也是如此。

关于python - 我如何实时更新 html 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45847822/

相关文章:

javascript - 在鼠标悬停时隐藏/显示左侧边栏

html - 始终将工具提示定位在右下角

javascript - 如何将 javascript 或 css 文件加载到 BottlePy 模板中?

python - Django : Can't import 'module' . 检查模块AppConfig.name是否正确

python - 如何检查 python 可迭代数组中的任何元素是否为 None、空数组或 False(不包括零)?

python - 有没有办法在 Python TypedDict 中指定任意额外内容?

javascript - python (bottle) - 异步响应 - 处理客户端 (javascript)

python - 如何使用立体三角测量从 2D 图像点计算 3D 对象点?

python - Python 中的 HTML 文件解析

html - Bottle 路线添加CSS文件