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)[source]#

一个处理程序,它接受一个普通的 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[source]#
参数:
  • func (callable) –

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

    def func(doc: Document):
        # modify doc
        return doc
    

    它应该在进行任何就地修改后返回传入的文档。

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

modify_document(doc: Document) None[source]#

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

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

property safe_to_fork: bool#

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

如果 modify_doc 已被调用,则为 False