bokeh.application.handlers.directory#

提供一个Bokeh应用程序处理程序,通过运行指定目录中的main.pymain.ipynb文件来构建文档。

目录还可以选择性地包含:

  • 一个server_lifecyle.py模块,用于为应用程序和会话提供生命周期回调。

  • 一个包含应用程序特定静态资源的static子目录,用于提供服务。

  • 一个包含Bokeh主题的theme.yaml文件,用于自动应用于所有新文档。

  • 一个包含应用程序显示模板的templates子目录

完整的目录布局可能如下所示:

myapp
   |
   +---main.py
   +---server_lifecycle.py
   +---static
   +---theme.yaml
   +---templates
        +---index.html
class DirectoryHandler(*, filename: str | PathLike[str], argv: list[str] = [])[源代码]#

加载一个修改文档的应用程序目录。

__init__(*, filename: str | PathLike[str], argv: list[str] = []) None[source]#
Keywords:

文件名 (str) : 指向包含“main.py”或“main.ipynb”的应用程序目录的路径

argv (list[str], 可选) : 一个字符串参数列表,作为 sys.argv 提供给 main.py

modify_document(doc: Document) None[source]#

执行配置的 main.pymain.ipynb 来修改文档。

此方法还会在应用程序目录中搜索任何主题或模板文件,并在找到时自动配置文档。

on_server_loaded(server_context: ServerContext) None[source]#

当服务器首次启动时,从server_lifecycle.py执行on_server_unloaded`(如果已定义)。

Parameters:

server_context (ServerContext)

on_server_unloaded(server_context: ServerContext) None[source]#

当服务器正常退出时,从server_lifecycle.py执行on_server_unloaded(如果已定义)。(在停止服务器的IOLoop之前。)

Parameters:

server_context (ServerContext)

警告

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

on_session_created(session_context: SessionContext) Coroutine[Any, Any, None][source]#

当创建新会话时,从server_lifecycle.py执行on_session_created(如果已定义)。

Parameters:

session_context (SessionContext)

on_session_destroyed(session_context: SessionContext) Coroutine[Any, Any, None][source]#

当会话被销毁时,从server_lifecycle.py执行on_session_destroyed(如果已定义)。

Parameters:

session_context (SessionContext)

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

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

Parameters:

request – HTTP 请求

Returns:

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

url_path() str | None[source]#

配置目录路径的basename的最后一个路径组件。

property error: str | None#

如果处理程序失败,可能包含相关的错误消息。

property error_detail: str | None#

如果处理程序失败,可能包含回溯或其他详细信息。

property failed: bool#

True 如果处理程序未能修改文档

property safe_to_fork: bool#

Bokeh服务器是否仍然可以安全地分叉新的工作进程。

False 如果配置的代码(脚本、笔记本等)已经运行过。