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 服务器使用应用程序代码为连接的所有客户端(通常是浏览器)创建会话和文档
Bokeh 服务器(左)使用应用程序代码创建 Bokeh 文档。来自浏览器(右)的每个新连接都会导致 Bokeh 服务器为该会话创建一个新文档。#
每次建立新连接时,都会在 Bokeh 服务器中执行应用程序代码,以创建将同步到浏览器的新 Bokeh Document
。应用程序代码还设置任何回调,这些回调应在属性(例如 widget 值)更改时运行。
侧边栏中的参考链接记录了 Bokeh Server 的详细信息。除非用户有主题要求,否则大多数用户可能不需要关注这些细节,而应参考《用户指南》中的Bokeh server章节,以获取有关使用 Bokeh Server 的信息。