bokeh.server.server#
提供基本的 Bokeh 服务器对象,这些对象使用 Tornado HTTPServer
和 BokeTornado
Tornado 应用程序来服务 Bokeh 服务器应用程序。此模块中有两个公共类
BaseServer
这是一个轻量级类,用于显式协调运行 Bokeh 服务器所需的组件(
BokehTornado
实例,以及 TornadoHTTPServer
和 TornadoIOLoop
)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 获取活动的会话。
- 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
- property io_loop: IOLoop#
此 Bokeh 服务器正在其上运行的 Tornado
IOLoop
。
- 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_loop
和num_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] 或 Application 或 callable) –
从 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
的操作- 关键字参数:
- allow_websocket_origin (
Nullable
(List
)) 允许连接到 websocket 的主机列表。
当使用
server_document()
或类似方法将 Bokeh 服务器应用程序嵌入到外部网站时,通常需要此项。如果为 None,则使用 “localhost”。(默认值:None)
- allow_websocket_origin (
- num_procs (
Int
) 为 HTTP 服务器启动的工作进程数。如果还显式配置了
io_loop
,则num_procs=1
是唯一兼容的值。使用BaseServer
来协调显式的IOLoop
与多进程 HTTP 服务器。值为 0 将自动检测内核数。
请注意,由于 Tornado 固有的限制,Windows 不支持大于 1 的
num_procs
值!在这种情况下,请考虑在负载均衡器后面运行多个 Bokeh 服务器实例。(默认值:1)
- num_procs (
- port (
Int
) 服务器应侦听 HTTP 请求的端口号。(默认值:5006)
- port (
- prefix (
String
) 用于所有 Bokeh 服务器路径的 URL 前缀。(默认值:‘’)
- prefix (
- use_xheaders (
Bool
) 是否让 Bokeh 服务器使用
X-Real-Ip
、X-Forwarded-For
、X-Scheme
、X-Forwarded-Proto
标头(如果提供)覆盖所有请求的远程 IP 以及 URI 方案和协议。(默认值:False)
- use_xheaders (
- websocket_max_message_size (
Int
) 设置 Tornado
websocket_max_message_size
值。(默认值:20971520)
- websocket_max_message_size (
任何剩余的关键字参数将按原样传递给
BokehTornado
。