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服务器机制。一个
BokehTornadoTornado 应用程序,定义了 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获取活动会话。
- 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:
无
- 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服务器机制。一个
BokehTornadoTornado 应用程序,定义了 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[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:
- allow_websocket_origin (
Nullable(List)): 可以连接到websocket的主机列表。
这通常在将Bokeh服务器应用程序嵌入到外部网站时是必需的,使用
server_document()或类似方法。如果为None,则使用“localhost”。(默认值:None)
- allow_websocket_origin (
- num_procs (
Int): 为HTTP服务器启动的工作进程数量。如果还配置了显式的
io_loop,那么num_procs=1是唯一兼容的值。使用BaseServer来协调显式的IOLoop与多进程HTTP服务器。值为0时将自动检测核心数。
请注意,由于Tornado固有的限制,Windows不支持
num_procs值大于一!在这种情况下,考虑在负载均衡器后面运行多个Bokeh服务器实例。(默认值:1)
- num_procs (
- port (
Int): 服务器应监听HTTP请求的端口号。(默认值:5006)
- port (
- prefix (
String): 用于所有Bokeh服务器路径的URL前缀。(默认值:'')
- prefix (
- use_xheaders (
Bool): 是否让Bokeh服务器覆盖所有请求的远程IP和URI方案以及协议,使用
X-Real-Ip、X-Forwarded-For、X-Scheme、X-Forwarded-Proto头信息(如果提供了这些头信息)。(默认值:False)
- use_xheaders (
- websocket_max_message_size (
Int): 设置Tornado
websocket_max_message_size的值。(默认值:20971520)
- websocket_max_message_size (
任何剩余的关键字参数将原封不动地传递给
BokehTornado。