将matplotlib图保存为数据库中的图像字段

时间:2013-12-14 05:55:25

标签: python django matplotlib imagefield

我刚开始学习matplotlib,我想在我的django应用程序中使用它。所以我想知道如何保存在模型的图像区域中生成的图形,以便我可以在需要时进行检索。

1 个答案:

答案 0 :(得分:2)

matplotlib.pyplot.savefig接受类似文件的对象作为第一个参数。您可以传递StringIO / BytesIO(根据您的python版本)。

f = StringIO()
plt.savefig(f)

然后,使用django.core.files.ContentFile将字符串转换为django.core.files.File(因为FieldFile.save只接受django.core.files.File的实例)。

content_file = ContentFile(f.getvalue())
model_object = Model(....)
model_object.image_field.save('name_of_image', content_file)
model_object.save()