9

似乎至少有两种或三种主要方法可以构建与Bokeh进行通信的应用程序。bokeh-server它们对应于 Bokeh 中示例目录下的文件夹 appembed/ plottingglyphs

关于它们之间的区别,我在这里阅读了以下内容:

stock_app.py(app文件夹) 示例中,您bokeh-server用于嵌入小程序并从您指定的 url 提供它。这就是为什么你创建一个新StockApp类并创建一个创建它的新实例并用 @bokeh_app.route("/bokeh/stocks/")和 装饰它的函数@object_page("stocks")。您可以按照app示例(滑块、库存和交叉过滤器)并使用散景@object_page@bokeh_app.route 装饰器来创建您的自定义 url。

taylor_server.py示例(glyphs文件夹)中,会话对象负责为您创建所有内容bokeh-server。无法从此界面自定义 url 或创建别名。

但这让我感到困惑,散景术语中的“小程序”和“嵌入”是什么意思, 小程序(大概是and )和/之间到底有什么区别?appembedplottingglyphs

另外我认为“嵌入”的概念仅指我们在embed文件夹中看到的设计模式,如示例 animated.py中,我们将 a 嵌入到tagHTML 文件的正文中。我在 中没有看到,那stock_app.py为什么它是一个嵌入示例?

4

2 回答 2

4

但这让我感到困惑,散景术语中的“小程序”和“嵌入”是什么意思

您在此处粘贴的答案显然有错误(这可能对您的理解没有帮助,抱歉)。股票应用程序示例 stock_app.py位于 examples\app\stock_applet\stock_app.py 未嵌入文件夹中。此外,使用的术语也无济于事。在该示例中,您创建了一个可以以 2 种不同方式提供服务的小程序:

  1. 直接在散景服务器上运行
  2. 嵌入(或集成,如果您愿意)到单独的应用程序(在这种情况下为 Flask 应用程序)

您可以在examples\app\stock_applet\README.md文件中找到更多信息。

此外,您还可以找到有关小程序和散景服务器示例文档和用户指南的信息

关于嵌入的含义,您可以在散景文档的 user_guide/embedding 部分找到更多信息。总而言之,您可以生成可以插入到您自己的 Web 应用程序代码中的代码,以显示散景组件。examples\embed 中的示例也有助于理解这种模式。

最后,您看到的 bokeh-server 的使用taylor_server.py只是使用 bokeh server 为您提供绘图(而不是将其保存到静态 html 文件)。

希望这可以帮助 ;-)

于 2014-12-18T12:20:33.397 回答
3

只是补充一点......我将在邮件列表中粘贴 Bryan 的引用(在另一个线程中,所以也许你错过了):

关于应用程序与嵌入。“应用程序”都在散景服务器内运行。因此,您可以通过执行以下操作来启动它们:

    bokeh-server --script sliders_app.py 

这样做的主要原因是,否则,要在服务器之外创建一个“应用程序”,唯一真正的解决方案是有一个长时间运行的进程来轮询服务器以获取更新。这并不理想,直接在服务器中运行的应用程序可以利用更好的回调。请注意,“应用程序”的概念仍然相当新,诸如如何启动、轻松拼写和部署应用程序之类的东西非常有待改进。

“嵌入”示例只是展示了如何在标准网络应用程序中嵌入散景图(即,您想从 Flask 中提供一个图,其中包含一个图)。这可以使用或不使用散景服务器来完成,但即使您使用散景服务器,散景服务器中也不会运行任何代码响应小部件或更新绘图或数据。要更新绘图,您必须有一个单独的 python 进程连接到散景服务器并轮询或推送数据到它。

干杯。

达米安

于 2014-12-18T15:01:23.647 回答