bokeh.server.server#

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

BaseServer

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

Server

这个更高级别的便利类只需要使用 Bokeh Application 实例进行配置,它将自动创建和协调更低级别的 Tornado 组件。

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

class BaseServer(io_loop: IOLoop, tornado_app: BokehTornado, http_server: HTTPServer)[source]#

明确协调运行 Bokeh 服务器所需的 Tornado 组件

  • 用于运行 Bokeh 服务器机制的 Tornado IOLoop

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

  • 用于引导 HTTP 请求的 Tornado HTTPServer

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

__init__(io_loop: IOLoop, tornado_app: BokehTornado, http_server: HTTPServer) None[source]#

创建一个 BaseServer 实例。

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

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

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

get_session(app_path: str, session_id: ID) ServerSession[source]#

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

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

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

返回值:

ServerSession

get_sessions(app_path: str | None = None) list[ServerSession][source]#

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

参数:

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

返回值:

list[ServerSession]

run_until_shutdown() None[source]#

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

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

返回值:

None

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

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

此方法可用于测试或在本地计算机上运行 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[source]#

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

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

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

stop(wait: bool = True) None[source]#

停止 Bokeh 服务器。

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

参数:

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

返回值:

None

unlisten() None[source]#

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

注意

此函数主要用于测试

返回值:

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)[source]#

一个运行 Bokeh 服务器的高级便利类。

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

  • 用于运行 Bokeh 服务器机制的 Tornado IOLoop

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

  • 用于引导 HTTP 请求的 Tornado HTTPServer

这个高级的 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[source]#

创建一个 Server 实例。

参数:
  • applications (dict[str, Application] or Application or callable) –

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

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

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

    为了方便起见,还可以提供一个可调用对象,其中将使用 FunctionHandler 为其创建一个 Application。

  • io_loop (IOLoop, optional) – 用于运行 Bokeh Server 代码的显式 Tornado IOLoop。如果为 None,则将使用 IOLoop.current()(默认值:None)

  • http_server_kwargs (dict, optional) –

    传递给 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))

    可以连接到 websockets 的主机列表。

    当使用 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 套接字。