【问题标题】:Unable to render PIL object base64 image on template无法在模板上呈现 PIL 对象 base64 图像
【发布时间】:2018-09-03 06:14:12
【问题描述】:

我试图在转换为 base64 后显示一个 PIL 对象。 我在 src 标记中获得了 base64 值,但即使在解码后也没有呈现响应

import base64
import io
def newrules(request):
pic = con(select.fname)
print(pic)
buffered = io.BytesIO()
pic.save(buffered, "PNG")
img_str = base64.b64encode(buffered.getvalue())
template_code = """
{% load static %}
<!DOCTYPE HTML>
<html>
<body>
{% block pagecontent %}
<div>
<img src="data:image/png;base64,{{ img_str }}">
</div>
<div>
{{ img_str }}
</div>
</body>
{% endblock %}
</html>
"""
template = engines['django'].from_string(template_code)
return HttpResponse(template.render(context={'img_str': img_str}))

HTML souce code

terminal API call responses

Template rendered

我们将不胜感激。

【问题讨论】:

标签: html django python-3.x base64 python-imaging-library


【解决方案1】:

base64.b64encode(buffered.getvalue()) 返回一个字节类对象。在将其传递给模板之前,需要将其转换为字符串。可以这样做:

img_str = base64.b64encode(buffered.getvalue()).decode('ascii')

【讨论】:

    猜你喜欢
    • 2019-04-06
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多