bokeh.client.session

提供一个会话对象,以便将外部Python客户端中的Bokeh文档服务到Bokeh服务器。

用例

客户端会话有两个主要用途:

  • 围绕Bokeh服务器应用程序实现自动化测试基础设施。

  • 创建和定制Bokeh服务器应用程序的特定会话(运行 在Bokeh服务器中 )在将它们传递给特定的查看器之前。

class ClientSession(session_id=None, websocket_url='ws://localhost:5006/ws', io_loop=None, arguments=None)[源代码]

表示到服务器端会话的websocket连接。

每个服务器会话存储一个文档,该文档与相应的文档保持同步 ClientSession 实例。只要连接处于打开状态,连接任一端的更新将自动传播到另一端。

ClientSession对象可以(通常应该)用作上下文管理器,以便会话正确关闭:

with pull_session(url=app_url) as mysession:
    # customize session here
    script = server_session(session_id=mysession.id, url=app_url)
    return render_template("embed.html", script=script, template="Flask")

如果你不使用 ClientSession 这样,你就可以确保 mysession.close() 被称为。

__init__(session_id=None, websocket_url='ws://localhost:5006/ws', io_loop=None, arguments=None)[源代码]

连接到服务器上的特定命名会话的连接。

总是在创建会话后立即调用pull()或push()(直到调用它们为止 session.documentNone

这个 push_session()pull_session() 函数将构造 ClientSession 一步推或拉,所以它们是获得 ClientSession .

参数
  • session_id (str) -- 会话的名称或无以生成会话

  • websocket_url (str) -- 要连接到的Websocket URL

  • io_loop (IOLoop, optional) -- 用于websocket的IOLoop

  • arguments (dict[str, str], optional) -- 将作为HTTP请求参数传递给Bokeh应用程序代码(默认值:None)的键/值字典请注意,只有在拉入新会话时才应提供该字典。如果 session_id 不是没有,或是与 session_id 已经存在,这些参数将无效。

check_connection_errors()[源代码]

无法建立连接时引发错误。

应在调用后使用。

返回

没有

close(why='closed')[源代码]

关闭与服务器的连接。

connect()[源代码]

连接到配置的URL处的Bokeh服务器。

force_roundtrip()[源代码]

强制向服务器发出往返请求/答复,有时需要这样做以避免竞争条件。主要用于测试。

在测试套件之外,这种方法会损害性能,因此不应该需要这种方法。

返回

没有

pull()[源代码]

拉取服务器的状态并将其设置为会话.document.

如果不止一次打电话,会话.document将是相同的对象实例,但其内容将被覆盖。

自动呼叫 connect() 在拉之前。

push(document=None)[源代码]

将给定文档推送到服务器并将其记录为会话.document.

如果多次调用此函数,则文档必须相同(或“无”表示“会话.document").

注解

自动呼叫 connect() 在推之前。

参数

document (Document, optional) -- 将与服务器文档保持同步的文档。无需使用会话.document或创建新文档。

request_server_info()[源代码]

询问有关服务器的信息。

返回

服务器属性词典。

show(obj=None, browser=None, new='tab')[源代码]

打开显示此会话的浏览器。

参数
  • obj (LayoutDOM object, optional) -- 要显示的布局(行/列)、绘图或小部件对象。对象将被添加到会话的文档中。

  • browser (str, optional) -- 要显示的浏览器(默认值:无)对于支持它的系统 浏览器 参数允许指定要在哪个浏览器中显示,例如“safari”、“firefox”、“opera”、“windows default”(请参阅 webbrowser 有关更多详细信息,请参阅标准库中的模块文档)。

  • new (str, optional) -- 对于基于文件的输出,新的文件输出模式(默认:“tab”)打开或打开显示当前输出文件的浏览器窗口。如果 new 是“tab”,然后打开一个新选项卡。如果 new 是“窗口”,然后打开一个新窗口。

property connected

此会话当前是否已连接。

property document

A Document 它将与服务器上的相应文档保持同步。

此值在以下情况下初始化 pull()push() 成功。会的 None 在那之前。

property id

此会话的唯一ID。

property token

用于验证会话的JWT令牌。

pull_session(session_id=None, url='default', io_loop=None, arguments=None)[源代码]

通过加载当前服务器端文档创建会话。

session.document 将是从服务器加载的新文档。与服务器的连接处于打开状态时,在服务器端所做的更改将应用于此文档,在客户端所做的更改将同步到服务器。

如果你不打算修改 session.document 您可能不需要使用此函数;相反,您可以直接使用 show_session()server_session() 不需要先将会话的文档下载到您的进程中。如果不需要下载会话,那么避免下载会话的效率要高得多。

在生产场景中 session_id 对于每个浏览器选项卡应该是唯一的,这样用户就不会互相踩踏了。使用可预测的会话ID或跨用户共享会话ID既不可伸缩也不安全。

对于在一台机器上运行的笔记本, session_id 可能是人类可读的东西,比如 "default" 为了方便。

如果你允许的话 pull_session() 生成一个 session_id ,您可以使用 id 返回的属性 ClientSession .

参数
  • session_id (string, optional) -- 会话的名称,None自动生成随机会话(默认值:None)

  • url -- (str,可选):Bokeh服务器上Bokeh应用程序的URL也可以是 "default" 将连接到默认应用程序URL

  • io_loop (tornado.ioloop.IOLoop, optional) -- 这个 IOLoop 用于websocket

  • arguments (dict[str, str], optional) -- 将作为HTTP请求参数传递给Bokeh应用程序代码(默认值:None)的键/值字典请注意,只有在拉入新会话时才应提供该字典。如果 session_id 不是没有,或是与 session_id 已经存在,这些参数将无效。

返回

一个新的 ClientSession 已连接到服务器

返回类型

ClientSession

push_session(document, session_id=None, url='default', io_loop=None)[源代码]

通过将给定文档推送到服务器,覆盖任何现有的服务器端文档来创建会话。

session.document 在返回的会话中将是您提供的文档。与服务器的连接处于打开状态时,在服务器端所做的更改将应用于此文档,在客户端所做的更改将同步到服务器。

在生产场景中 session_id 对于每个浏览器选项卡应该是唯一的,这样用户就不会互相踩踏了。使用可预测的会话ID或跨用户共享会话ID既不可伸缩也不安全。

对于在一台机器上运行的笔记本, session_id 可能是人类可读的东西,比如 "default" 为了方便。

如果你允许的话 push_session() 生成一个 session_id ,您可以使用 id 返回的属性 ClientSession .

参数
  • document -- (bokeh.document.document文档)要推式设置为的文档会话.document

  • session_id -- (string,可选)会话的名称,None自动生成随机会话(默认值:None)

  • url -- (str,可选):Bokeh服务器上Bokeh应用程序的URL也可以是 "default" 将连接到默认应用程序URL

  • io_loop -- (龙卷风.ioloop.ioloop,可选)用于websocket的IOLoop

返回

ClientSession连接到服务器的新ClientSession

show_session(session_id=None, url='default', session=None, browser=None, new='tab', controller=None)[源代码]

打开显示会话文档的浏览器。

如果你有来自 pull_session()push_session 你可以 show_session(session=mysession) . 如果您不需要自己打开与服务器的连接,则可以通过提供 url .

参数
  • session_id (string, optional) -- 会话的名称,None自动生成随机会话(默认值:None)

  • url -- (str,可选):Bokeh服务器上Bokeh应用程序的URL也可以是 "default" 将连接到默认应用程序URL

  • session (ClientSession, optional) -- 从中获取会话ID和服务器URL的会话如果指定此项,则不需要指定会话标识和URL

  • browser (str, optional) -- 要显示的浏览器(默认值:无)对于支持它的系统 浏览器 参数允许指定要在哪个浏览器中显示,例如“safari”、“firefox”、“opera”、“windows default”(请参阅 webbrowser 有关更多详细信息,请参阅标准库中的模块文档)。

  • new (str, optional) -- 对于基于文件的输出,新的文件输出模式(默认:“tab”)打开或打开显示当前输出文件的浏览器窗口。如果 new 是“tab”,然后打开一个新选项卡。如果 new 是“窗口”,然后打开一个新窗口。