我构建了一个WSGI页面,该页面既包含表格数据,又包含来自数据库的同一数据的散点图。 (我正在使用flask和matplotlib,但这没关系)。这将生成两个单独的请求:一个用于HTML页面,一个用于从标记调用的动态生成的图像。由于数据库的运行速度很慢,并且两个请求都需要完全相同的数据,因此我希望仅使用一个SQL查询就可以完成此工作。我想到两种方法:
在HTML视图功能中查询数据库之后,生成散点图并将其保存在PNG文件中的某个位置。然后将列表数据传递到模板上,并在浏览器请求图像后提供缓存的PNG。
以某种方式将图像数据嵌入HTML本身,并让浏览器使用Javascript呈现它。
方法1.简单明了,但是当不再需要缓存的图像时,我还需要一种方法来摆脱它们。这很容易变得凌乱。由于该应用程序纯粹是由http请求驱动的,因此我将必须在每个请求中扫描缓存目录,并确定哪个文件足够老而可以删除。或者,我可以让“加载” javascript函数第三次调用我的应用程序以触发图像删除。也许很聪明,但很健壮?
有什么建议吗?
答案 0 :(得分:0)
我已经在Usenet上使用25年了,但仍然发布问题是几分钟后自己找到答案的最佳方法:
<img src="data:image/png;base64, {{imgdata}}">
并在查看功能中:
return flask.render_template('chart_page.html', imgdata=base64.b64encode(pixbuf))
故事的结尾。没有JavaScript。