我是java脚本新手,请原谅我的无知。
我正在使用文档中的示例代码。
from bokeh.io import output_file, show
from bokeh.models.widgets import Slider
output_file("slider.html")
slider = Slider(start=0, end=10, value=1, step=.1, title="Stuff")
show(slider)
每当 slider 移动时,“Stuff”旁边的值就会发生变化,我想这会发生在 JS 中。 有没有办法将这种动态变化的值存储在Python中?
最佳答案
“在 Python 中存储”意味着实际上有一个 Python 进程正在运行,用于存储值。但是当您运行像上面这样的脚本时,情况并非如此。事件的顺序是:
- Python 解释器开始运行您的脚本
- 静态 HTML/JS/CSS 输出与 slider 小部件一起保存
- Python 进程终止
事实上,这是不可能的。必须有一些持久的、长期运行的 Python 进程才能使“用 Python 存储”有意义。该过程是Bokeh Server (它是专门为填补这一 Angular 色而创建的)。代码的典型 Bokeh 服务器应用版本可能如下所示:
from bokeh.io import curdoc
from bokeh.models.widgets import Slider
slider = Slider(start=0, end=10, value=1, step=.1, title="Stuff")
def callback(attr, old, new):
# do something here with new slider values
slider.on_change('value', callback)
curdoc().add_root(slider)
这将使用 bokehserve
命令在命令行上运行(不作为“常规”Python 脚本运行):
bokeh serve --show app.py
--show
将自动打开网络浏览器。
还可以在 Jupyter Notebooks 中嵌入 Bokeh 服务器应用程序。您可以找到一个可以在本地运行的示例笔记本 here 。
关于javascript - 保存 Bokeh 小部件动态值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56779846/