python - 在 Django 中使用 POST 的参数显示 matplotlib 生成的多张图片

标签 python django matplotlib

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

  1. 通过表单中的字段通过 POST 提交一些参数
  2. 根据POST中的参数从互联网或数据库获取更多数据并进行一些复杂的计算。最后生成两张图和一张数据表。
  3. 在提交参数的同一页面上显示图形和数据表(以便用户可以更改参数,重新提交,然后看到更改)
  4. 不需要在服务器中保存数字和数据。

我想知道如何实现这一点而不在服务器中生成临时图片。

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

结果:

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

最佳答案

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

这样您就永远不会真正将图像保存到服务器或数据库,并且使用 Base64 您不必处理二进制数据。

关于python - 在 Django 中使用 POST 的参数显示 matplotlib 生成的多张图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30380001/

相关文章:

Python-如何使颜色条方向水平?

python - 为什么你可以使用python中的导入模块来引用导入的模块

python - 从 Django 中的模型搜索

Django:通过另一个模型访问模型

python - Django 信号 : using update_field as condition

python - 访问 Matplotlib 文本对象标签文本

python - Pandas MultiIndex 名称不起作用

python - 类和 while 循环?

python - Django 注释与 select_related

python - 在 python 中使用 matplotlib 的脂肪带