bokeh.server.server#
提供使用 Tornado HTTPServer
和 BokeTornado
Tornado 应用程序来服务 Bokeh 服务器应用程序的基本 Bokeh 服务器对象。此模块中有两个公共类
BaseServer
这是一个轻量级类,用于明确协调运行 Bokeh 服务器所需组件(一个
BokehTornado
实例,以及 TornadoHTTPServer
和一个 TornadoIOLoop
)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 获取活动会话。
- 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
- 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)[source]#
一个运行 Bokeh 服务器的高级便利类。
此类可以自动协调运行 Bokeh 服务器所需的三个基础组件
用于运行 Bokeh 服务器机制的 Tornado
IOLoop
。一个
BokehTornado
Tornado 应用程序,定义了 Bokeh 服务器机制。用于引导 HTTP 请求的 Tornado
HTTPServer
这个高级的
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 [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
的操作- 关键字参数:
- allow_websocket_origin (
Nullable
(List
)) 可以连接到 websockets 的主机列表。
当使用
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
。