bokeh.server#

提供一个可定制的 Bokeh Server Tornado 核心应用程序。

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

但是,如果能够使 Python 中和浏览器中的“模型对象”彼此同步,那么更多额外的强大可能性就会立即出现。

  • 使用 Python 的全部功能来响应在浏览器中生成的 UI 和工具事件(例如计算或查询)。

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

  • 使用周期性、超时和异步回调来驱动流更新。

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

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

../../_images/bokeh_serve.svg

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

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

侧边栏中的参考链接记录了 Bokeh Server 的详细信息。大多数用户可能不需要关心这些细节,除非他们有主题要求,并且应该参考用户指南章节Bokeh 服务器,以获取有关使用 Bokeh Server 的信息。