将“Bokeh创建的html文件”嵌入到Flask“template.html”文件中

时间:2015-10-28 18:33:30

标签: python flask jinja2 bokeh

我有一个用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 %}

1 个答案:

答案 0 :(得分:12)

在这种情况下,您不想使用output_file。 Bokeh具有专门用于嵌入到网络应用中的HTML模板的功能bokeh.embed.component,在quickstarttutorial中进行了演示。

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.