如何在Django web应用程序中呈现Matplotlib绘图?

2024-04-25 22:20:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在阅读这本书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'),
)

但是,我不知道这是如何工作的,因为在“default”中,urls.pyurlpatternsdjango.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并看到啁啾正弦的图像)。


Tags: djangofrompyimporturladminpngresponse

热门问题