jba*_*sta 5 django templates image matplotlib
背景: 我从Django开始,对Python的经验有限,所以请耐心等待.我编写了一个Python脚本,它定期运行(在cron作业中)将数据存储到SQLite3数据库中,我想从中读取并使用Matplotlib生成图像(更具体地说,使用Basemap).这开始是学习Python和构建一个"有趣"的项目的兴趣.我正在选择Django框架,因为它似乎有相当好的文档记录,虽然我对web.py感到惊喜,因为它的要求具有"轻量级"(但web.py的稀疏文档使得它开始时更难) ; 但目前,我并没有完全陷入僵局.
问题1874642中的示例几乎就是我正在寻找的,其中图像是即时生成的,无需将其写入磁盘(因此必须定期处理清理生成的文件).
然而,我不清楚的是如何将生成的图像合并到模板中,而不是让浏览器简单地显示图像.从教程材料,我猜测,它应该有可能以表示一些掺入的变量django.template.Context
进django.http.HttpResponse
,但是所引用的例如通过直接与默对象响应,而不是与上下文建立它快捷键它.
所以我要问的是:
是否有必要print_png
在生成的Matplotlib FigureCanvas
对象上调用?或者是FigureCanvas
复制的"未打印"到Context,以便在Django模板中我明确地编写HTML img
标记并手动放置标记的属性?
我的印象是我必须将Canvas写入磁盘(即执行a canvas.print_figure("image.png")
),以便HTML img
标记在Django模板中看到它.但我想确保没有"更易于管理的方式" - 即传递图像Context
并让模板"神奇地"生成它.如果真的有必要写入磁盘,我想我可以使用Django的文件系统缓存工具以某种方式编写生成的图像(当然,检查图像是否已经为给定的输入参数集编写).我欢迎你提出这方面的建议,因为目前尚不清楚将要生成的图像的大小和数量,因此我希望避免花费磁盘空间而宁愿等待生成图像(即使需要几秒钟).
先感谢您.