2016-08-01 111 views
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"), 

然後你就可以投入的index.html顯示在您的HTML這一形象:

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

是給我的錯誤「標籤開始沒有關閉」 是什麼網址這裏是一個變量? – utkarsh

+0

url是django templatetag:https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#url - 對於錯誤 - 請檢查模板中的標點符號和空格。代碼應該按照原樣工作。 –

+0

感謝您的幫助,但圖像仍然沒有顯示...一個空白頁 – utkarsh