bokeh.application.application#

提供 Application 类。

Application 实例是用于创建新的 Bokeh 文档的工厂。

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

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

Application 是 Document 实例的工厂。

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

Application 工厂。

参数:

handlers (seq[Handler]) – 用于调用的处理器列表。URL 仅取自第一个处理器。

关键字参数:

metadata (dict) –

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

服务器将提供一个 URL http://applicationurl/metadata,该 URL 返回一个 JSON 块,形式为

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

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

add(handler: Handler) None[source]#

将处理器添加到用于初始化新文档的管道中。

参数:

handler (Handler) – 此 Application 要用来处理文档的处理器

create_document() Document[source]#

使用 Application 的处理器创建并初始化一个文档。

initialize_document(doc: Document) None[source]#

使用 Application 的处理器填充一个新文档。

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 请求,返回一个字典,其中包含要添加到会话上下文的其他数据。

参数:

request – HTTP 请求

返回:

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

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

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

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

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

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

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

class ServerContext[source]#

用于与 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]#

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

子类必须实现此方法。

参数:

func (callable) – 一个接受单个参数(文档)并返回 NoneFuture 的函数。

返回:

一个包含函数结果的 Future

abstract property destroyed: bool#

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

稍后可以创建具有相同 ID 的新会话,但此实例不会恢复。

property id: ID#

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

属性 server_context: ServerContext#

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