我一直在寻找这个并尝试在其他答案中实施多个解决方案,但是没有成功这样做。
我使用以下方法成功获取图像的HTTPResponse :
frontier_plot_data = Image.open("plot.png")
# serialize to HTTP response
frontier_plot = imgResponse(frontier_plot_data)
return(frontier_plot)
imgResponse的功能:
def imgResponse(valid_image):
try:
with open(valid_image, "rb") as f:
return HttpResponse(f.read(), content_type="image/jpeg")
except:
red = Image.new('RGBA', (1, 1), (255,0,0,0))
response = HttpResponse(content_type="image/jpeg")
red.save(response, "JPEG")
return response
我将frontier_plot
返回到views.py
并将其传递到上下文中:
context = {"form": form, "frontier_plot": frontier_plot}
然后我尝试使用此行在我的template
HTML文件中呈现它,我已将其用于常规HTML字符串:
{{ frontier_plot }}
这不是静态图像,而是由流程保存然后生成的图像。它总是被覆盖到plot.png
。
我已经阅读了一些关于使用URL引用和Django渲染功能的内容,但我不确定实现。
我不认为我可以创建一个单独的视图来查看这个图,因为虽然我已经简化了这个问题,但实际上这个过程中有多个返回的图。