Django 在模板中渲染动态图像

2024-01-12

在 Django 视图中,我可以生成动态图像(PNG 格式的图形),并创建一个响应,该响应是我的图形的图像。我可以让它在浏览器中显示,但没有网页 - 它只是图像。 现在我想将此图像嵌入 HTML 模板中并渲染它。我怎样才能做到这一点? (这是我的第一个 Django 项目。)

import matplotlib.pyplot as plt
import numpy as np
import io

# Initialize the matplotlib figure
f, ax = plt.subplots(figsize=(6, 15))

width = my_data['bar_length']
data_names = my_data['ObjectNames']
y_pos = np.arange(len(data_names))

norm = plt.Normalize(my_data['bar_length'].min(), my_data['bar_length'].max())
cmap = plt.get_cmap("RdYlGn")

# Create horizontal bars
plt.barh(y_pos, width, color=cmap(norm(my_data['bar_length'].values)))

# Create names on the y-axis
plt.yticks(y_pos, data_names)
FigureCanvasAgg(f)

buf = io.BytesIO()
plt.savefig(buf, format='png')
plt.close(f)
response = HttpResponse(buf.getvalue(), content_type='image/png')
# This works, but it generates just an image (no web page)
return response
# This ends up displaying the bytes of the image as text
#return render(request, 'my_app/graph.html', {'graph1': buf.getvalue()})

# This is what is in the graph.html template
# <div class="graph1">
#     {{graph1 | safe}}
# </div>

已解决:我可以将图像作为 base64 编码字符串传递

buf = io.BytesIO()
plt.savefig(buf, format='png')
plt.close(f)
img_b64 = base64.b64encode(buf.getvalue()).decode()
return render(request, 'my_app/graph.html', {'graph1b64': img_b64})

# in graph.html
 <div class="graph1">
     <img src="data:image/png;base64, {{ graph1b64 }}" alt="graph1" />
 </div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 在模板中渲染动态图像 的相关文章

随机推荐

  • 安卓屏幕方向

    I tried getOrientation 获取方向值但它总是返回0 getOrientation 已弃用 但这不一定是问题的根源 确实 您应该使用获取旋转 代替获取方向 但只有当您的目标是 Android 2 2 API 级别 8 或更
  • 无法将关键字“用户名”解析为字段。选项有:城市、身份证、电话等

    我想就这些问题寻求帮助 我确实知道这似乎与同一问题的其他问题相似 但我环顾四周 发现没有什么可以真正解决我的问题 顺便说一句 这是我第二次在这里提问 所以请告诉我这条消息是否太长 谢谢 我将 AllAuth 与 Django 1 8 和 P
  • 如何为postgresql中的所有表创建触发器?

    我有一个触发器 但我需要与我的 postgres 的所有表关联 有下面这样的命令吗 CREATE TRIGGER delete data alldb BEFORE DELETE ON ALL DATABASE FOR EACH ROW EX
  • 将 UILabel 文本设置为粗体[重复]

    这个问题在这里已经有答案了 如何设置文本UILabel以编程方式在 Swift 中加粗 到目前为止我的代码 var label UILabel frame theFrame label text Foo Use font的财产UILabel
  • 带有徽标图像的 django pdf

    我使用比萨创建了发票 Pdf 文本模板 但我想在 pdf 文件中显示徽标 图像 以及文本 我不知道如何在 pdf 中显示图像 我的看法如下 def generate invoice request user id None personal
  • 在 .NET Core 中将 HTML 转换为图像

    我想在 Web 服务器上将 HTML 代码转换为图像 png jpg 然后在我的 NET Core 应用程序中通过电子邮件发送图像链接 我不想购买任何第三方库 如 NReco 或 EVo 还有其他方法可以在 dotnet core 2 0
  • 有没有一种方法可以仅使用 javascript 命令来选择图像并将其复制到剪贴板?

    我想复制图像本身而不是任何文本或相关的 src 我做了一个 jsfiddle 的例子https jsfiddle net pvuefca7 1 https jsfiddle net pvuefca7 1 您可以尝试一下 发现复制文本效果很好
  • 如何在 Formik 上实现自定义 handleChange 函数?

    在输入元素中 handleChange 函数将从 onChange 事件接收事件对象 如何为如下非输入字段创建自定义 handleChange 函数 import React from react import useFormik from
  • 如何使用 XCTest 从 iOS 13 删除/重置应用程序?

    最近我开始使用 XCTest 测试 iOS 应用程序 但我发现了一些困难 主要困难是删除或重置每个测试类中的应用程序内容 我目前正在使用 XCode 11 并尝试从 iOS 13 中为每个测试类删除 重置应用程序 我已经尝试过 通过跳板删除
  • 在 adMob 中仅显示文字广告

    我已将我的 adMob 帐户更新到新版本 我只想在我的应用中显示文字广告 我如何使用新版本的 adMob 帐户做到这一点 或者 如何在新版本的 adMob 帐户中屏蔽图片广告 这可以在您的 AdMob 帐户上完成 去 AdMob gt 获利
  • 检查是否在 mySQL 的多个列之一中找到字符串

    我需要检查是否在一列或多列中找到字符串 基本上 我有一个程序可以让你检查多个字段 姓名 姓氏等 如果同时检查姓名并且用户仅输入姓名 例如 chris 则可以很容易地在 mySQL 中使用 LIKE 参数进行检查 如下所示 select fr
  • 统一访问Web服务

    我有三个 Web 服务 它们是由三个不同的供应商开发的 并且具有不同的 URL 输入参数和输出参数 它们都是 ASMX Web 服务 它们用于从第三方关系数据库中删除记录 例如我提供一个 personID 然后一个人就会从一个系统中删除 并
  • SharePoint 错误:找不到 xxxx 的 Web 应用程序

    当我尝试执行这段代码时 SPSite siteCollection new SPSite http sp devxxx 10000 它抛出以下错误 Web 应用程序位于http sp devxxx 10000 http sp devxxx
  • 从不正确的 .Rbuildignore 文件构建后,包中的整理字段中的文件丢失

    我的包的其中一个函数在构建时拒绝添加到包源中 然后在运行 R CMD 检查时失败 我的包位于github上here https github com eshilts dc crime data 文件calculate latitude an
  • 迭代 C 数组

    我有一个在程序中某处创建的结构数组 后来 我想迭代它 但我没有数组的大小 如何迭代元素 或者我需要将尺寸存储在某处吗 如果在编译时已知数组的大小 则可以使用结构大小来确定元素的数量 struct foo fooarr 10 for i 0
  • 如何解决 Arango 查询承诺错误? [复制]

    这个问题已经存在了 我一直在尝试使用肥皂消息从 Arangodb 获取查询结果到我的前端服务 Angular 4 我能够获得查询结果 但在 console log 中打印出来 但是我如何在这个功能 Service 下获取它 这样我就可以输入
  • 如何在 React Native 中创建聊天气泡的卷曲箭头/尾部

    我目前正在用反应本机制作聊天气泡 由于我是反应原生的新手 我首先尝试在浏览器上制作聊天气泡 然后尝试在反应原生中复制相同的内容 我正在努力复制反应本机中的箭头 有什么想法 建议吗 普通 HTML CSS div p class to me
  • 使用 boost asio 进行多线程 http 处理是否需要线程?

    在Boost asio中股线文档 https www boost org doc libs 1 78 0 doc html boost asio overview core strands html它说 链可以是隐式的也可以是显式的 如以下
  • 如何确保你的计算图是可微的

    一些 Tensorflow 操作 例如tf argmax 是不可微分的 即在反向传播中不计算和使用梯度 一个答案Tensorflow 哪些操作是可微分的 哪些操作是不可微分的 https stackoverflow com question
  • Django 在模板中渲染动态图像

    在 Django 视图中 我可以生成动态图像 PNG 格式的图形 并创建一个响应 该响应是我的图形的图像 我可以让它在浏览器中显示 但没有网页 它只是图像 现在我想将此图像嵌入 HTML 模板中并渲染它 我怎样才能做到这一点 这是我的第一个