Kur*_*eek 4 python django matplotlib
我正在阅读Python开发人员的Matplotlib一书,但我正在努力遵循第8章"Django应用程序中的Matplotlib"一节中的示例.
到目前为止,我已发出命令
django-admin startproject mpldjango
Run Code Online (Sandbox Code Playgroud)
并且,在mpldjango目录中,
python manage.py startapp mpl
Run Code Online (Sandbox Code Playgroud)
根据这个例子,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
Run Code Online (Sandbox Code Playgroud)
接下来,书中说mpldjango/urls.py应该添加这一行:
urlpatterns = patterns('',
(r'mplimage.png', 'mpl.views.mplimage'),
)
Run Code Online (Sandbox Code Playgroud)
但是,我不知道这是如何工作的,因为在'default'中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),
]
Run Code Online (Sandbox Code Playgroud)
并且没有patterns定义构造函数.也许这本书(来自2009年)指的是传统的Django API?如果是这样,我将如何修改此代码以使其工作?(也就是说,在python manage.py runserver我能够浏览localhost:8000/mplimage.png并查看啁啾正弦曲线的图像之后).
根据无法导入名称模式,这确实是Django的遗留接口.我通过mpldjango/urls.py以下方式"更新"了它:
from django.conf.urls import include, url
from django.contrib import admin
import mpl.views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'mplimage.png', mpl.views.mplimage),
]
Run Code Online (Sandbox Code Playgroud)
现在,如果我浏览到http:// localhost:8000/mplimage.png,我会看到所需的情节:
| 归档时间: |
|
| 查看次数: |
4648 次 |
| 最近记录: |