bokeh.application.application#

提供 Application 类。

应用程序实例是用于创建新Bokeh文档的工厂。

当启动一个Bokeh服务器会话时,Bokeh服务器会向应用程序请求一个新的文档来服务该会话。为此,应用程序首先创建一个新的空文档,然后将这个新文档传递给其每个处理程序的modify_document方法。当所有处理程序都更新了文档后,该文档将用于服务用户会话。

class Application(*handlers: Handler, metadata: dict[str, Any] | None = None)[source]#

应用程序是文档实例的工厂。

__init__(*handlers: Handler, metadata: dict[str, Any] | None = None) None[source]#

应用程序工厂。

Parameters:

handlers (seq[Handler]) – 要调用的处理程序列表。 URL仅从第一个处理程序中获取。

Keyword Arguments:

metadata (dict) –

用户提供的任意JSON数据,以便与应用程序一起使用。

服务器将提供一个URL http://applicationurl/metadata,该URL返回以下形式的JSON数据块:

{
    "data": {
        "hi": "hi",
        "there": "there"
    },
    "url": "/myapp"
}

用户提供的元数据将原样返回在数据块的"data"键下。

add(handler: Handler) None[源代码]#

向用于初始化新文档的管道添加一个处理程序。

Parameters:

handler (Handler) – 此应用程序用于处理文档的处理程序

create_document() Document[源代码]#

使用应用程序的处理程序创建并初始化文档。

initialize_document(doc: Document) None[source]#

使用应用程序的处理程序填充新文档。

on_server_loaded(server_context: ServerContext) None[source]#

当创建新会话时调用以执行代码。

此方法按顺序在每个处理程序上调用on_server_loaded,并将服务器上下文作为唯一参数传递。

on_server_unloaded(server_context: ServerContext) None[source]#

当服务器正常退出时调用以执行代码。(在停止服务器的IOLoop之前。)

此方法按顺序在每个处理程序上调用on_server_unloaded,并将服务器上下文作为唯一参数传递。

警告

实际上,这段代码可能不会运行,因为服务器通常会被信号终止。

async on_session_created(session_context: SessionContext) None[source]#

当创建新会话时调用以执行代码。

此方法按顺序在每个处理器上调用on_session_created,将会话上下文作为唯一参数传递。

可能会返回一个Future,它将延迟会话创建,直到Future完成。

async on_session_destroyed(session_context: SessionContext) None[source]#

当会话被销毁时调用以执行代码。

此方法按顺序在每个处理器上调用on_session_destroyed,将会话上下文作为唯一参数传递。

之后,session_context.destroyed 将会是 True

process_request(request: HTTPServerRequest) dict[str, Any][source]#

处理传入的HTTP请求,返回一个字典,其中包含要添加到session_context的额外数据。

Parameters:

request – HTTP 请求

Returns:

一个包含在会话上下文中的JSON可序列化数据的字典。

property handlers: tuple[Handler, ...]#

此应用程序配置的处理程序的有序列表。

property metadata: dict[str, Any] | None#

与此应用程序关联的任意用户提供的元数据。

property safe_to_fork: bool#
property static_path: str | None#

由处理程序指定的任何(可选)静态资源的路径。

class ServerContext[源代码]#

用于与Bokeh会话集合相关的服务器特定信息和任务的工具。

这个基类可能对普通用户不感兴趣。

abstract property sessions: list[ServerSession]#

SessionContext 属于此应用程序的实例。

子类必须实现此方法。

class SessionContext(server_context: ServerContext, session_id: ID)[source]#

用于与Bokeh会话相关的服务器特定信息和任务的工具。

这个基类可能对普通用户不感兴趣。

__init__(server_context: ServerContext, session_id: ID) None[source]#
abstract with_locked_document(func: Callable[[Document], Awaitable[None]]) Awaitable[None][source]#

在持有文档锁的情况下运行一个函数,并将文档传递给该函数。

子类必须实现此方法。

Parameters:

func (可调用) – 接受单个参数(Document)并返回 NoneFuture 的函数

Returns:

一个包含函数结果的 Future

abstract property destroyed: bool#

如果 True,会话已被丢弃且无法使用。

稍后可能会创建一个具有相同ID的新会话,但这个实例将不会恢复。

property id: ID#

与此上下文关联的会话的唯一ID。

property server_context: ServerContext#

此会话上下文的服务器上下文