首页 > 解决方案 > 包含带有模板的 HTTPResponse 对象?试图将pyplot显示到网页

问题描述

我正在尝试向网页显示 pyplot 图表以及包含其他变量的模板。现在,pyplot 图像正在与 PIL 一起保存到响应对象,但是,我想要的不仅仅是响应中的图像。有没有办法将 HTTPResponse 对象作为变量附加到模板上?

我尝试在加载模板的其余部分后使用 Jquery 请求绘图,但绘图需要一段时间才能呈现,并且最终在模板的其余部分之后显示很长时间。我希望图像与模板的其余部分一起加载

buf = io.BytesIO()
plt.savefig(buf, format='png')
buf.seek(0)
im = Image.open(buf)
response = HttpResponse(content_type="image/png")
im.save(response, "PNG")
buf.close()
plt.close(fig)
return response

标签: pythondjangomatplotlib

解决方案


找到了适合我需要的解决方案。我将模板中的图像源设置为原始问题中的视图,然后使用此解决方案(如何创建 JavaScript 回调以了解图像何时加载?)来检测图像何时已完成加载并阻止模板显示,直到图像请求完成


推荐阅读