1

Я представляю изображение в django (1.9) Python 2.7.10. Он работает отлично.Ошибка Django Unicode при визуализации изображения через шаблон

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' codec can't decode byte 0x89 in position 27: invalid start byte. You passed in HttpResponse status_code=200, "image/png" (class 'django.http.response.HttpResponse')

ответ

0

Вы должны создать свой собственный URL для просмотра (обратите внимание, это может быть вид что вы указали эти работы), добавьте в urls.py:

url('^show_graph/$', yourview, name="show_graph"), 

Тогда вы можете показать это изображение в вашем HTML, помещая в index.html:

<img src={% url "show_graph" %} height="400" width="400"> 
+0

дает мне ошибку «Открывающий тег не закрыт» что URL здесь это переменная? – utkarsh

+0

url - django templatetag: https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#url - для ошибки - пожалуйста, проверьте знаки препинания и wihte в вашем шаблоне. Код должен работать как Iisted. –

+0

Спасибо за помощь, но изображение все еще не показывает ... пустую страницу – utkarsh

Смежные вопросы