通过模板渲染图像时出现 Django Unicode 错误
Posted
技术标签:
【中文标题】通过模板渲染图像时出现 Django Unicode 错误【英文标题】:Django Unicode Error While Rendering Image through template 【发布时间】:2016-12-06 04:40:03 【问题描述】:我正在 django(1.9) Python 2.7.10 中渲染图像。效果很好。
views.py
canvas = FigureCanvas(fig)
response = django.http.HttpResponse(content_type='image/png')
canvas.print_png(response)
plt.close(fig)
return response
上面的代码总是从行首开始在浏览器中发布图像。我想将图像定位到浏览器中的新位置。我尝试在模板中传递响应变量。
views.py
canvas = FigureCanvas(fig)
response = django.http.HttpResponse(content_type='image/png')
canvas.print_png(response)
plt.close(fig)
context = 'response': response
return render(request, 'index.html', context)
index.html
<div align="center" style="text-align:center;"> response </div>
这里的问题是我得到了错误:
'utf8' 编解码器无法解码位置 27 中的字节 0x89:无效的起始字节。你传入了 HttpResponse status_code=200, "image/png" (class 'django.http.response.HttpResponse')
【问题讨论】:
【参考方案1】:您需要为您的视图设置自己的 url(注意这可以是您列出的有效视图),在 urls.py 中添加:
url('^show_graph/$', yourview, name="show_graph"),
然后你可以在你的 html 中通过放入 index.html 来显示这个图像:
<img src=% url "show_graph" % >
【讨论】:
给我错误“标签开始未关闭”这里的 url 是什么变量? url 是 django 模板标签:docs.djangoproject.com/en/1.9/ref/templates/builtins/#url - 对于错误 - 请检查模板中的标点符号和空格。代码应该像 Iisted 一样工作。 感谢您的帮助,但图片仍未显示...空白页以上是关于通过模板渲染图像时出现 Django Unicode 错误的主要内容,如果未能解决你的问题,请参考以下文章
构建 Vue 项目时出现错误“无法安装组件:未定义模板或渲染函数”
渲染大图像时出现javafx NullPointerException
Django:在使用模板继承时在基本模板文件中加载自定义过滤器时出现问题