は、私は本Matplotlib for Python Developersを読んでいますが、これまでのところDjango WebアプリケーションでMatplotlibプロットをレンダリングするには?
章8節に「matplotlibのDjangoアプリケーションで」の例に従うのに苦労しています、私はコマンド
django-admin startproject mpldjango
を発行しました次のようにして、mpldjango
ディレクトリ、例のように
python manage.py startapp mpl
で、mpldjango/mpl
に私がviews.py
を作った:
import django
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
import numpy as np
def mplimage(request):
fig = Figure()
canvas = FigureCanvas(fig)
ax = fig.add_subplot(111)
x = np.arange(-2,1.5,.01)
y = np.sin(np.exp(2*x))
ax.plot(x, y)
response=django.http.HttpResponse(content_type='image/png')
canvas.print_png(response)
return response
次に、本はmpldjango/urls.py
は、この行がそれに追加されていなければならないと述べている:
urlpatterns = patterns('',
(r'mplimage.png', 'mpl.views.mplimage'),
)
しかし、私はurlpatterns
があり、これは「デフォルト」urls.py
で以来、どのように動作するか表示されませんdjango.conf.urls.url
オブジェクトのLITS:
from django.conf.urls import url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
]
と定義されたpatterns
コンストラクタはありません。おそらく、この本(2009年以降)は従来のDjango APIを指しているでしょうか?もしそうなら、このコードを変更して動作させるには? (つまり、python manage.py runserver
の後には、localhost:8000/mplimage.png
にアクセスし、チャープされた正弦波の画像を見ることができるはずです)。