bokeh服务器#

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

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

然而,如果能够保持“模型对象”在python和浏览器中同步,那么更多额外且强大的可能性将立即打开:

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

  • 自动将服务器端更新推送到用户界面(即浏览器中的小部件或图表)

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

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

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

../../_images/bokeh_serve.svg

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

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

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