2016-08-01 25 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を設定する必要があります(この点に注意してくださいビューすることができあなたがその作品をリストアップしていた)、Add in urls.py:

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

次に、あなたのindex.htmlに置くことによって、あなたの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 - エラーのために、テンプレートの句読点と空白を確認してください。コードは動かなければならない。ヘルプが、画像のための –

+0

おかげでまだ...空白のページが表示されていない – utkarsh

関連する問題