我有一个用Python编写的Web应用程序 - Flask。当用户在其中一个页面(POST请求)中填写一些设置时,我的控制器会计算一些功能并使用Bokeh使用以下命令绘制输出,然后我重定向到由Bokeh创建的HTML页面。
output_file("templates\\" + idx[j]['name'] + ".html", title = "line plots")
TOOLS="resize,crosshair,pan,wheel_zoom,box_zoom,reset,box_select,lasso_select"
p = figure(tools=TOOLS, x_axis_label = 'time', y_axis_label = 'L', plot_width = 1400, plot_height = 900)
除了Bokeh生成的文件外,我的所有HTML页面都扩展了我的“Template.HTML”文件。我的问题是如何自动修改Bokeh生成的HTML文件以扩展我的template.html文件?这样我就拥有了所有导航栏和放大器。在Bokeh html文件之上的jumbotron。
{% extends "template.html" %}
{% block content %}
<Bokeh.html file>
{% endblock %}
答案 0 :(得分:12)
在这种情况下,您不想使用output_file
。 Bokeh具有专门用于嵌入到网络应用中的HTML模板的功能bokeh.embed.component
,在quickstart和tutorial中进行了演示。
from bokeh.embed import components
script, div = components(plot)
return render_template('page.html', script=script, div=div)
<body>
{{ div|safe }}
{{ script|safe }}
</body>
Here is a complete, runnable example that that shows how to use this with Flask.