python - 在视图中创建的图像不会在模板 django 中呈现
问题描述
我试图在我的模板中渲染一个我用 matplotlib 创建的简单图形。我想在页面正文中呈现图表,而不仅仅是返回带有该图表的 HttpResponse。但我无法让它工作。这是我尝试过的。
view.py 代码
def showGraph(request):
content_x = [10, 20, 30]
content_y = ['one', 'two', 'three']
plt.bar(content_x, content_y)
plt.title('Some chart')
plt.show()
buffer = io.BytesIO()
canvas = plt.get_current_fig_manager().canvas
canvas.draw()
graphIMG = PIL.Image.frombytes('RGB', canvas.get_width_height(), canvas.tostring_rgb())
graphIMG.save(buffer, "PNG")
content_type = "Image/png"
buffercontent = buffer.getvalue()
graphic = (buffercontent, content_type)
plt.close()
return render(request, 'projectRelated/LAN/graphs.html', {'graphic': graphic})
html页面代码
{% extends 'base.html' %}
{% load static %}
{% block container_content %}
<img src="data:image/png;base64,{{ graphic }}">
{% endblock container_content %}
上面的代码只是显示一个随机图标..
解决方案
推荐阅读
- prometheus - Prometheus 向量搜索不包括某些标签
- linq - 假设标记字段太宽
- python - 如何解决导入错误?导入烧瓶抛出异常 - ubuntu 18.04
- android - 使用适用于 Android 和 IOS 的 Xamarin Forms,如何显示 4 个唯一状态的状态指示器
- r - 用R合并两个具有不同列长度的csv文件
- r - 时间序列图显示不正确的前导零
- python - 关于复数的奇怪行为
- xamarin - Xamarin Forms Shell - 一次加载每个选项卡 - 急切加载而不是延迟加载
- kubernetes - Helm 错误:拨打 tcp *:10250: i/o 超时
- reactjs - 我如何保存 Draftjs 数据然后获取它并在编辑器中填充它