私は自宅で動的に生成された画像を追加したいと思います。私は数字を保存するのではなく、テキストの後に私のホームページに直接表示するだけです。 マイ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 %}
エラー:この図は表示されません。これは次のような壊れたリンクです:
イメージのステータスではなく、バイナリで明確にコピーされます(追加の引用符が追加されます)。私がここで間違っていることを教えてくれますか?または類似のQ & Aを提案しますか?
PS。私はDjangoの初心者です。寛大なことをしてください。
あなたの答えをありがとう。それは有望そうだ。私は後でそれを試して、それが私にはうまくいくと解決したものとしてマークします。 – giosans