bokeh.server#

提供可自定义的 Bokeh Server Tornadocore 应用程序。

Bokeh 的架构是这样的:高级“模型对象”(代表诸如绘图、范围、坐标轴、字形等事物)在 Python 中创建,然后转换为 JSON 格式,供客户端库 BokehJS 使用。(有关更详细的讨论,请参阅简介。)就其本身而言,这种灵活且解耦的设计提供了优势,例如,很容易让其他语言(R、Scala、Lua、...)驱动浏览器中完全相同的 Bokeh 绘图和可视化。

但是,如果可以将 Python 中的“模型对象”与浏览器中的模型对象保持同步,那么更多额外且强大的可能性将立即打开

  • 使用 Python 的全部功能响应浏览器中生成的 UI 和工具事件,进行计算或查询

  • 自动将服务器端更新推送到 UI(即浏览器中的 widget 或绘图)

  • 使用定期、超时和异步回调来驱动流式更新

这种在 Python 和浏览器之间同步的能力是 Bokeh Server 的主要目的。

到目前为止,使用 Bokeh 服务器创建交互式数据可视化最灵活的方法是创建 Bokeh 应用程序,并使用 Bokeh 服务器为它们提供服务。在这种情况下,Bokeh 服务器使用应用程序代码为连接的所有客户端(通常是浏览器)创建会话和文档

../../_images/bokeh_serve.svg

Bokeh 服务器(左)使用应用程序代码创建 Bokeh 文档。来自浏览器(右)的每个新连接都会导致 Bokeh 服务器为该会话创建一个新文档。#

每次建立新连接时,都会在 Bokeh 服务器中执行应用程序代码,以创建将同步到浏览器的新 Bokeh Document。应用程序代码还设置任何回调,这些回调应在属性(例如 widget 值)更改时运行。

侧边栏中的参考链接记录了 Bokeh Server 的详细信息。除非用户有主题要求,否则大多数用户可能不需要关注这些细节,而应参考《用户指南》中的Bokeh server章节,以获取有关使用 Bokeh Server 的信息。