在模板中的烧瓶matplotlib图形

时间:2013-12-06 23:47:05

标签: python matplotlib flask

我有一个非常初学者的问题。是否可以通过render_template(...)直接显示动态处理的matplotlib图像(如https://gist.github.com/wilsaj/862153https://gist.github.com/rduplain/1641344所示),还是必须使用app.route('... /') ?目的是在网站内展示可定制的(科学)情节。

如果我想将数组(或多个变量)传递给绘图函数,是否有任何干净的解决方案?

1 个答案:

答案 0 :(得分:6)

您必须使用两条路线和一个模板才能执行此操作。

显示该页面的路线将使用您的HTML页面模板调用render_template()。模板具有页面的HTML,但不包含PNG数据。

在模板中PNG图像所在的位置,您必须插入<img>元素,就像您尝试显示静态图像一样。

诀窍是此图像的src属性指向第二条路线。您可以使用url_for()生成它。例如:

<img src="{{ url_for('mypng', data = some_data) }}">

当浏览器收到HTML时,它会找到图像的链接并加载该URL。这将在服务器中执行第二条路径。

第二条路线生成PNG数据并将其作为响应返回,没有模板并设置内容类型image/png,以便浏览器将其呈现为图像。第二条路线将按照您引用的两个链接进行编码。

我希望这有帮助!

相关问题