【发布时间】:2017-08-02 11:52:45
【问题描述】:
我正在阅读本书Matplotlib for Python Developers,但我正在努力遵循第 8 章“Django 应用程序中的 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 并看到一个啁啾正弦曲线的图像。
【问题讨论】:
标签: python django matplotlib