我想在我的家中添加動態生成的圖片。我不想保存這個數字,只是直接在我的主頁上顯示一些文字。 我views.py
的樣子:在Django主頁添加動態生成的matplotlib圖片
from django.shortcuts import render
def index(request):
import random
import datetime
import django
import pylab
import PIL, PIL.Image
import io
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
from matplotlib.dates import DateFormatter
fig=Figure()
ax=fig.add_subplot(111)
x=[]
y=[]
now=datetime.datetime.now()
delta=datetime.timedelta(days=1)
for i in range(10):
x.append(now)
now+=delta
y.append(random.randint(0, 1000))
ax.plot_date(x, y, '-')
ax.xaxis.set_major_formatter(DateFormatter('%Y-%m-%d'))
fig.autofmt_xdate()
canvas = FigureCanvas(fig)
graphic1 =django.http.HttpResponse(content_type='image/png')
canvas.print_png(graphic1)
return render(request, 'personal/home.html',{'graphic':graphic1})
功能index
已經包含在urls.py
。那裏沒問題。我home.html
貌似
{% extends "personal/header.html" %}
{% block content %}
<p> Welcome to my website!</p>
{% include "personal/includes/htmlpic.html" %}
{% endblock %}
我htmlpic.html
是:
{% block graphic %}
<div id="content">
<img src= "data:image/png;base64,{{graphic|safe}}" >
</div>
{% endblock %}
錯誤:這個數字並沒有顯示出來。它是這樣的一個斷開的鏈接:
<img src="data:image/png;base64,<HttpResponse status_code=200, " image png">
它清楚地複製狀態,而不是在二進制圖像(並添加額外的報價)。你能告訴我我在這裏做錯了嗎?或者建議一個類似的Q & A?
PS。我是Django的新手,請大方。
感謝您的回答。看起來很有希望。我會稍後再嘗試,並將其標記爲已解決,如果這對我有用。 – giosans