bokeh.server.server#

提供基本的 Bokeh 服务器对象,这些对象使用 Tornado HTTPServerBokeTornado Tornado 应用程序来服务 Bokeh 服务器应用程序。此模块中有两个公共类

BaseServer

这是一个轻量级类,用于显式协调运行 Bokeh 服务器所需的组件(BokehTornado 实例,以及 Tornado HTTPServer 和 Tornado IOLoop

Server

这个更高级别的便捷类只需要配置 Bokeh Application 实例,并将自动创建和协调较低级别的 Tornado 组件。

有关 Bokeh 服务器的常规信息,请参阅 服务器介绍

class BaseServer(io_loop: IOLoop, tornado_app: BokehTornado, http_server: HTTPServer)[源代码]#

显式协调运行 Bokeh 服务器所需的 Tornado 组件级别

  • 一个 Tornado IOLoop,用于运行 Bokeh 服务器机制。

  • 一个 BokehTornado Tornado 应用程序,用于定义 Bokeh 服务器机制。

  • 一个 Tornado HTTPServer,用于定向 HTTP 请求

所有这三个组件都必须传递给 BaseServer,这将初始化 io_loop 上的 BokehTornado 实例。 http_server 必须已预先创建并使用 BokehTornado 实例进行初始化。

__init__(io_loop: IOLoop, tornado_app: BokehTornado, http_server: HTTPServer) None[源代码]#

创建一个 BaseServer 实例。

参数:
  • io_loop (IOLoop) – 一个 Tornado IOLoop,用于在其上运行 Bokeh Tornado 应用程序。

  • tornado_app (BokehTornado) – Bokeh Tornado 应用程序的实例,该应用程序生成 Bokeh 文档和会话。

  • http_server (HTTPServer) – 一个 Tornado HTTPServer,用于为 Bokeh 应用程序提供 HTTP 请求服务。在创建时应已使用 tornado_app 进行配置。

get_session(app_path: str, session_id: ID) ServerSession[源代码]#

通过名称应用程序路径和会话 ID 获取活动的会话。

参数:
  • app_path (str) – 要为其返回会话的应用程序的配置应用程序路径。

  • session_id (str) – 要检索的会话的会话 ID。

返回:

ServerSession

get_sessions(app_path: str | None = None) list[ServerSession][源代码]#

获取应用程序当前所有活动的会话。

参数:

app_path (str, 可选) – 要为其返回会话的应用程序的配置应用程序路径。如果为 None,则返回所有应用程序的活动会话。(默认值:None)

返回:

list[ServerSession]

run_until_shutdown() None[源代码]#

运行 Bokeh 服务器,直到用户通过键盘中断 (Ctrl-C) 或 SIGTERM 请求关闭。

调用此方法将启动 Tornado IOLoop 并阻止调用进程中的所有执行。

返回:

None

show(app_path: str, browser: str | None = None, new: BrowserTarget = 'tab') None[源代码]#

在浏览器窗口或选项卡中打开应用程序。

此方法对于在本地计算机上测试或运行 Bokeh 服务器应用程序很有用,但不应在为实际部署运行 Bokeh 服务器时调用。

参数:
  • app_path (str) – 要打开的应用程序路径。URL 中主机名:端口之后的部分,带有前导斜杠。

  • browser (str, 可选) – 要显示的浏览器(默认值:None)。对于支持它的系统,browser 参数允许指定要显示的浏览器,例如 “safari”、“firefox”、“opera”、“windows-default”(有关更多详细信息,请参阅标准库中的 webbrowser 模块文档)。

  • new (str, 可选) – 窗口或选项卡(默认值:“tab”)。如果 new 为 ‘tab’,则打开一个新选项卡。如果 new 为 ‘window’,则打开一个新窗口。

返回:

None

start() None[源代码]#

在 Tornado IOLoop 上安装 Bokeh 服务器及其后台任务。

此方法不会阻塞,并且不会影响 Tornado IOLoop 的状态。您必须自己启动和停止循环,即,当您已经显式管理 IOLoop 时,此方法通常很有用。

要启动 Bokeh 服务器并立即以阻塞方式“永远运行”,请参阅 run_until_shutdown()

stop(wait: bool = True) None[源代码]#

停止 Bokeh 服务器。

这将停止并删除所有 Bokeh 服务器 IOLoop 回调,并停止此实例配置的 HTTPServer

参数:

wait (bool) – 是否等待有序清理(默认值:True)

返回:

None

unlisten() None[源代码]#

停止监听端口。调用此函数后,服务器将不再可用。

注意

此函数主要用于测试

返回:

None

property address: str | None#

服务器监听 HTTP 请求的配置地址

property index: str | None#

用于 “/” 索引的 Jinja2 模板的路径

property io_loop: IOLoop#

此 Bokeh 服务器正在其上运行的 Tornado IOLoop

property port: int | None#

服务器监听 HTTP 请求的配置端口号

property prefix: str#

用于所有 Bokeh 服务器路径的配置 URL 前缀。

class Server(applications: Mapping[str, Application | ModifyDoc] | Application | ModifyDoc, io_loop: IOLoop | None = None, http_server_kwargs: dict[str, Any] | None = None, **kwargs: Any)[源代码]#

一个高级便捷类,用于运行 Bokeh 服务器。

此类可以自动协调运行 Bokeh 服务器所需的三个基本级别组件

  • 一个 Tornado IOLoop,用于运行 Bokeh 服务器机制。

  • 一个 BokehTornado Tornado 应用程序,用于定义 Bokeh 服务器机制。

  • 一个 Tornado HTTPServer,用于定向 HTTP 请求

这个高级 Server 类有一些限制。 特别是,不可能同时设置显式的 io_loopnum_procs 而不是 1。为此,有必要使用 BaseServer 并显式协调上述三个组件。

__init__(applications: Mapping[str, Application | ModifyDoc] | Application | ModifyDoc, io_loop: IOLoop | None = None, http_server_kwargs: dict[str, Any] | None = None, **kwargs: Any) None[源代码]#

创建一个 Server 实例。

参数:
  • applications (dict[str, Application] 或 Applicationcallable) –

    从 URL 路径到 Application 实例的映射,或要放在根 URL 的单个 Application。

    Application 是文档的工厂,每个会话初始化一个新文档。每个应用程序都由与 URL 对应的路径标识,例如 “/” 或 “/myapp”

    如果提供单个 Application,则会自动将其映射到 URL 路径 “/”。

    为方便起见,也可以提供可调用对象,在这种情况下,将使用 FunctionHandler 为其创建 Application。

  • io_loop (IOLoop, 可选) – 用于在其上运行 Bokeh 服务器代码的显式 Tornado IOLoop。如果为 None,将使用 IOLoop.current()(默认值:None)

  • http_server_kwargs (dict, 可选) –

    传递给 tornado.httpserver.HTTPServer 的额外参数。

    例如 max_buffer_size 以指定最大上传大小。 更多详细信息可以在

    https://tornado.pythonlang.cn/en/stable/httpserver.html#http-server

    如果为 None,则不传递额外的参数(默认值:None)

此外,可以传递以下选项来配置 Server 的操作

关键字参数:
  • address (Nullable(String))

    服务器应在其上监听 HTTP 请求的地址。(默认值:None)

  • allow_websocket_origin (Nullable(List))

    允许连接到 websocket 的主机列表。

    当使用 server_document() 或类似方法将 Bokeh 服务器应用程序嵌入到外部网站时,通常需要此项。

    如果为 None,则使用 “localhost”。(默认值:None)

  • index (Nullable(String))

    用于索引 “/” 的 Jinja2 模板的路径(默认值:None)

  • num_procs (Int)

    为 HTTP 服务器启动的工作进程数。如果还显式配置了 io_loop,则 num_procs=1 是唯一兼容的值。使用 BaseServer 来协调显式的 IOLoop 与多进程 HTTP 服务器。

    值为 0 将自动检测内核数。

    请注意,由于 Tornado 固有的限制,Windows 不支持大于 1 的 num_procs 值!在这种情况下,请考虑在负载均衡器后面运行多个 Bokeh 服务器实例。(默认值:1)

  • port (Int)

    服务器应侦听 HTTP 请求的端口号。(默认值:5006)

  • prefix (String)

    用于所有 Bokeh 服务器路径的 URL 前缀。(默认值:‘’)

  • ssl_certfile (Nullable(String))

    用于 SSL 终止的证书文件的路径。(默认值:None)

  • ssl_keyfile (Nullable(String))

    用于 SSL 终止的私钥文件的路径。(默认值:None)

  • ssl_password (Nullable(String))

    解密 SSL 密钥文件(如果需要)的密码。(默认值:None)

  • unix_socket (Nullable(String))

    服务器应绑定到的 unix 套接字。其他网络参数(如端口、地址、ssl 选项等)与 unix 套接字不兼容。Windows 上不支持 Unix 套接字。(默认值:None)

  • use_xheaders (Bool)

    是否让 Bokeh 服务器使用 X-Real-IpX-Forwarded-ForX-SchemeX-Forwarded-Proto 标头(如果提供)覆盖所有请求的远程 IP 以及 URI 方案和协议。(默认值:False)

  • websocket_max_message_size (Int)

    设置 Tornado websocket_max_message_size 值。(默认值:20971520)

任何剩余的关键字参数将按原样传递给 BokehTornado

property address: str | None#

服务器侦听 HTTP 请求时配置的地址。

property port: int | None#

服务器侦听 HTTP 请求时配置的端口号。

property unix_socket: str#

服务器侦听的配置 unix 套接字。