gpt4 book ai didi

django - 在 Django 模板中嵌入生成的 img

转载 作者:行者123 更新时间:2023-12-04 17:13:21 25 4
gpt4 key购买 nike

我将如何在 Django 模板中嵌入生成的图像?

就像是

return render_to_response('graph.html', { 'img': get_graph() })

我不想要这个 - 因为它只是发送图像
http.HttpResponse(get_graph(), mimetype="image/png")

最佳答案

我想将生成的 matplotlib 图像嵌入到 django 页面中,而不需要两次访问 django 服务器(一次获取模板,一次生成图像)。我将以下内容放入我的图像模板中

<img alt="embedded" src="data:image/png;base64,{{inline_png}}"/>

然后在 View 方法中:
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
import cStringIO as StringIO
import base64

num_signed_off = random.randint(0, 10)
num_reviewed = random.randint(0, 50)
num_unreviewed = random.randint(0, 50)

fig = Figure()
ax = fig.add_subplot(111, aspect='equal', axis_bgcolor='b')
ax.pie([num_signed_off, num_reviewed, num_unreviewed],
labels=['Signed Off', 'Reviewed', 'Unreviewed'],
colors=['b', 'r', 'g'],
)
ax.set_title('My Overall Stats')
ax.set_axis_bgcolor('r')
canvas=FigureCanvas(fig)
outstr = StringIO.StringIO()
canvas.print_png(outstr)
ret['inline_png'] = base64.b64encode(outstr.getvalue())
outstr.close()

return render(request, "my_view.html", ret)

唯一的问题是它在 IE7 或 IE8 中不起作用 - 它适用于 IE9 和更新版本,思想,当然还有所有基于标准的 Web 浏览器。

关于django - 在 Django 模板中嵌入生成的 img,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3347644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com