bokeh.application.application#

提供 Application 类。

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

当 Bokeh 服务器会话启动时,Bokeh 服务器会向 Application 请求一个新的 Document 来服务该会话。为此,Application 首先创建一个新的空 Document,然后将这个新的 Document 传递给其每个处理程序的 modify_document 方法。当所有处理程序都更新了 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,返回 JSON blob 格式

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

用户提供的元数据在 blob 中以 "data" 键的形式原样返回。

add(handler: Handler) None[source]#

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

参数:

handler (Handler) – 此 Application 用于处理 Document 的处理程序

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 请求,返回一个字典,其中包含要添加到 session_context 的附加数据。

参数:

request – HTTP 请求

返回值:

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

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

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

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) – 接受单个参数(Document)并返回 NoneFuture 的函数

返回值:

包含函数结果的 Future

abstract property destroyed: bool#

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

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

property id: ID#

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

property server_context: ServerContext#

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