能否将普通DataSource直接附加到Bokeh的Document上?
解决方案
- 服务端直接将数据源作为独立根对象加入Bokeh文档即可,无需绑定任何glyph渲染组件,示例代码如下:
from bokeh.models import ColumnDataSource from bokeh.io import curdoc # 初始化仅存储ids的空数据源,指定name用于前端索引 id_storage = ColumnDataSource(data={"ids": []}, name="idStorage") # 直接添加到文档根集合,不需要关联任何可视化组件 curdoc().add_root(id_storage) # 后续Python侧可随时读取数据源内容,获取前端传入的id列表 def fetch_ids(): return id_storage.data["ids"]
- 前端调用逻辑和你之前获取关联glyph的数据源完全一致:
let idSource = Bokeh.documents[0].get_model_by_name('idStorage'); // 新增id操作 idSource.data.ids.push('目标id值'); // 提交变更同步到Python后端 idSource.change.emit();
- 补充说明:Bokeh的文档根集合支持添加任意继承自
Model的Bokeh对象,不限制仅能添加可视化渲染类组件,多个根对象可并行同步互不影响,你添加的独立数据源不会产生额外的渲染开销。
内容的提问来源于stack exchange,提问作者Eduardo Rios
相关产品推荐
相关产品推荐

