我讀的書Matplotlib for Python Developers但我在努力效仿的部分「Matplotlib在Django應用程序」第8章中如何在Django Web應用程序中呈現Matplotlib圖?
到目前爲止,我已經發出了命令
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'),
)
不過,我看不出如何做到這一點,因爲工作的「默認」 urls.py
,urlpatterns
是django.conf.urls.url
對象的雙牀:
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
並看到啁啾的正弦曲線圖像)。