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 实例。

Parameters:
  • io_loop (IOLoop) – 一个 Tornado IOLoop,用于运行 Bokeh Tornado 应用程序。

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

  • http_server (HTTPServer) – 一个用于处理Bokeh应用程序HTTP请求的Tornado HTTPServer。在创建时应该已经配置了tornado_app

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

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

Parameters:
  • app_path (str) – 配置的应用程序路径,用于返回应用程序的会话。

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

Returns:

服务器会话

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

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

Parameters:

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

Returns:

列表[ServerSession]

run_until_shutdown() None[source]#

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

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

Returns:

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

在浏览器窗口或标签页中打开一个应用程序。

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

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

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

  • new (str, optional) – 窗口或标签页(默认:“tab”) 如果 new 是 'tab',则打开一个新标签页。 如果 new 是 'window',则打开一个新窗口。

Returns:

start() None[source]#

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

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

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

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

停止Bokeh服务器。

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

Parameters:

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

Returns:

unlisten() None[source]#

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

注意

此函数主要用于测试

Returns:

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#

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

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

创建一个 Server 实例。

Parameters:
  • 应用程序 (dict[str, Application] or Application or callable) –

    从URL路径到Application实例的映射,或者是一个单独的Application实例,放置在根URL上。

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

    如果提供了一个单独的Application实例,它会自动映射到URL路径“/”。

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

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

  • http_server_kwargs (dict, optional) –

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

    例如,max_buffer_size 用于指定最大上传大小。 更多详细信息可以在以下链接中找到:

    http://www.tornadoweb.org/en/stable/httpserver.html#http-server

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

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

Keyword Arguments:
  • address (Nullable(String)):

    服务器应监听HTTP请求的地址。(默认值:无)

  • allow_websocket_origin (Nullable(List)):

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

    这通常在将Bokeh服务器应用程序嵌入到外部网站时是必需的,使用server_document()或类似方法。

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

  • index (Nullable(String)):

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

  • num_procs (Int):

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

    值为0时将自动检测核心数。

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

  • port (Int):

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

  • prefix (String):

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

  • ssl_certfile (Nullable(String)):

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

  • ssl_keyfile (Nullable(String)):

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

  • ssl_password (Nullable(String)):

    如果需要,用于解密SSL密钥文件的密码。(默认值:无)

  • unix_socket (Nullable(String)):

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

  • use_xheaders (Bool):

    是否让Bokeh服务器覆盖所有请求的远程IP和URI方案以及协议,使用X-Real-IpX-Forwarded-ForX-SchemeX-Forwarded-Proto头信息(如果提供了这些头信息)。(默认值: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套接字。