我正试图想出一种方法将参数传递给嵌入式散景服务器调用的函数。我正在关注example here
特别是standalone_embed.py
。我需要将一个参数说明var从main函数传递给modify_doc
。我不知道该怎么做,因为FunctionHandler似乎没有任何参数。
from bokeh.application.handlers import FunctionHandler
from bokeh.application import Application
from bokeh.layouts import column
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure
from bokeh.server.server import Server
from bokeh.sampledata.sea_surface_temperature import sea_surface_temperature
def modify_doc(doc, var):
df = sea_surface_temperature.copy()
source = ColumnDataSource(data=df)
print var
plot = figure(x_axis_type='datetime', y_range=(0, 25), y_axis_label='Temperature (Celsius)',
title="Sea Surface Temperature at 43.18, -70.43")
plot.line('time', 'temperature', source=source)
doc.add_root(column(plot))
return doc
if __name__ == '__main__':
var =5
server = Server({'/': Application(FunctionHandler(modify_doc))})
server.start()
server.io_loop.add_callback(server.show, "/")
server.io_loop.start()
答案 0 :(得分:0)
您可以使用functools.partial
绑定特定值:
from functools import partial
server = Server({'/': partial(modify_doc, var=var)})
另请注意,在更新的版本中,您可以直接使用该功能,方便,而不必自己创建Application
或FunctionHandler
。
当您show
页面时,也可以传递HTML请求参数,并拥有modify_doc
应用代码inspect those HTML args。