【发布时间】:2016-12-18 00:24:52
【问题描述】:
我无法找到使用在 PythonAnywhere 上运行的散景和散景小部件的交互式 Web 应用程序的最小工作示例。
理想情况下,我想绘制一个相对复杂函数的简单图(我不知道它的解析,但我有 SymPy 为我计算),当参数更改时应该重新绘制它。
到目前为止我发现的所有代码都没有这样做,例如https://github.com/bokeh/bokeh/tree/master/examples,或指散景的过时版本。
大部分文档都涉及运行散景服务器,但没有说明如何使用 WSGI 运行它(这是 PythonAnywhere 处理请求的方式)。出于这个原因,我尝试在 Flask 应用程序中嵌入散景图。但是,据我了解,为了拥有交互式散景小部件(应该在 Python 中触发一些计算),确实需要散景服务器。如果我可以使用其他一些更简单的工具获得类似的结果,我并不特别喜欢使用 Flask 或 Bokeh。不幸的是,带有交互式小部件的 Jupyter 笔记本在 PythonAnywhere 中似乎不是一个选项。
我在 Python 3.5 上安装了散景 0.12。
我已经设法在烧瓶应用程序中运行了一个简单的散景图,但我无法使用散景小部件。
【问题讨论】:
-
散景服务器应用程序需要使用 websockets。 PythonAnywhere 是否提供转发 websocket 连接?如果不是,这在技术上可能不可行。此外,您提供的链接中的几乎每个示例都显示了“在更改参数时更新某些内容”的应用程序,因此关于它们“不这样做”的评论令人困惑。最后,Bokeh 服务器应用程序可以使用 Jinja 模板,因此如果您的应用程序是单页应用程序,您可以最轻松地完全作为 bokeh 服务器应用程序完成所有操作(无需烧瓶)
-
我明白散景完全可以做到这一点。可能我缺少的是一种将散景服务器连接到 WSGI 的方法。至于到目前为止发现的代码的评论,我显然是指要么不能轻松使用 PythonAnywhere,要么不能重新绘制函数(除非我通过 HTTP 请求,并放弃使用漂亮的散景小部件) .
-
恐怕我不明白“将散景服务器连接到 WSGI”是什么意思。如果这排除了 websocket 连接,这将根本行不通。 Bokeh 服务器必须能够打开和维护与客户端的 websocket 连接。顺便说一句,这个最近的邮件列表线程可能有用/相关:groups.google.com/a/continuum.io/forum/?pli=1#!topic/bokeh/…
-
我对 PythonAnywhere 比较陌生,更不用说 Python 中的 Web 开发了,但据我所知,我并不能真正控制实际的服务脚本,但据我所知,websockets 不应该被阻止。您发送的示例实际上非常有趣,我可能会在周末尝试一下...如果成功,我将为此编写一个最小的工作示例。
-
pythonanywhere webapps 不支持 web socket 连接
标签: python bokeh pythonanywhere