bokeh.application.handlers.function#

提供一个Bokeh应用程序处理程序,通过运行指定的Python函数来构建文档。

这个处理器不被Bokeh服务器命令行工具使用,但如果用户希望以编程方式嵌入Bokeh服务器,它通常很有用:

def make_doc(doc: Document):
    # do work to modify the document, add plots, widgets, etc.
    return doc

app = Application(FunctionHandler(make_doc))

server = Server({'/bkapp': app}, io_loop=IOLoop.current())
server.start()

有关此技术的完整示例,请参见 examples/server/api

class FunctionHandler(func: Callable[[Document], None], *, trap_exceptions: bool = False)[源代码]#

一个处理程序,它接受一个普通的Python函数,用于修改Bokeh文档。

例如,以下代码配置了一个处理程序,该处理程序使用一个函数将空图添加到文档中:

def add_empty_plot(doc: Document):
    p = figure(x_range=(0, 10), y_range=(0, 10))
    doc.add_root(p)
    return doc

handler = FunctionHandler(add_empty_plot)

此处理程序可以在应用程序上配置,并且每次创建新会话时,应用程序都会运行此函数。

__init__(func: Callable[[Document], None], *, trap_exceptions: bool = False) None[源代码]#
Parameters:
  • func (callable) –

    一个用于修改并返回 Bokeh 文档的函数。 该函数应具有以下形式:

    def func(doc: Document):
        # 修改文档
        return doc
    

    并且在原地进行任何修改后,它应返回传入的文档。

  • trap_exceptions (bool) – 是否应该捕获func中的异常并记录,还是允许其传播

modify_document(doc: Document) None[source]#

执行配置的 func 以修改文档。

在此方法首次执行后,safe_to_fork 将返回 False

property safe_to_fork: bool#

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

False 如果 modify_doc 已经被调用。