在Django中显示matplotlib生成的多张图片和POST中的parms

时间:2015-05-21 16:59:01

标签: python django matplotlib

我正在尝试为以下要求创建一个简单的Django网页:

  1. 通过POST通过表单中的字段提交一些参数
  2. 根据POST中的parms从互联网或数据库中获取更多数据并进行一些复杂的计算。最后生成两个数字和一个数据表。
  3. 在提交参数的同一页面上显示数字和数据表(以便用户可以更改参数,再次提交,然后查看更改)
  4. 不需要在服务器中保留数字和数据。
  5. 我想知道如何实现这一点而不在服务器中生成临时图片。

    我检查了一些与django和matplotlib相关的问题,但只找到通过写入图片ULR的Response返回一个图片流,或者写入临时图像文件然后嵌入模板的示例。

    结果:

    def get_img_url(): imgbuf = cStringIO.StringIO() pylab.savefig(imgbuf,format='png',bbox_inches='tight') imgbuf.seek(0) return "data:image/jpg;base64,%s" % imgbuf.getvalue().encode("base64").strip()

1 个答案:

答案 0 :(得分:2)

您可以从matplotlib生成图像,base64对图像数据进行编码,然后通过Data URI将数据写入页面。

这样您就不会将图像实际保存到服务器或数据库,而使用Base64则无需处理二进制数据。