我正在尝试在转换为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}))
任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
base64.b64encode(buffered.getvalue())返回一个字节类对象。需要先将其转换为字符串,然后再将其传递给模板。可以完成以下操作:
img_str = base64.b64encode(buffered.getvalue()).decode('ascii')