当前位置: 首页 > 面试题库 >

如何在Django Web应用程序中渲染Matplotlib图?

陆臻
2023-03-14
问题内容

我正在阅读面向Python开发人员的Matplotlib书,但正在努力遵循第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.pyurlpatterns有很多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并看到a正弦曲线的图像之后)。


问题答案:

根据无法导入的名称模式,这确实是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),
]

现在,如果我浏览到http:// localhost:8000 /
mplimage.png,则会
看到所需的图:

在此处输入图片说明



 类似资料:
  • 问题内容: 我有一个swing应用程序,该应用程序将命令发送到服务器并接收XML格式的结果。我需要通过XSLT将其转换为HTML,然后在面板上显示结果HTML。问题在于,唯一能够显示HTML的Swing组件- JEditorPane- 将URL或javax.swing.text.StyledDocument用作源。带有URL的选项对我不起作用,因为我必须先将html作为文件保存在文件系统中,并且我

  • 问题内容: 在本教程之后,我编写了一个非常基本的Web应用程序。我想在外部样式表中添加CSS规则,但是它不起作用- 呈现HTML模板时,出现了问题,CSS被完全忽略了。如果我将规则放在标签中,则可以使用,但是我不想处理。 在Go Web应用程序中,如何呈现外部CSS样式表? 问题答案: 添加一个处理程序以处理从指定目录提供的静态文件。 例如。创建{server.go目录} / resources

  • 问题内容: 在pyGame应用程序中,我想呈现SVG中描述的无分辨率的GUI小部件。 我可以使用什么工具和/或库来实现此目标? (我喜欢OCEMP GUI工具箱,但它的呈现似乎取决于位图) 问题答案: 这是一个完整的示例,其中结合了其他人的提示。它应该从当前目录渲染一个名为test.svg的文件。它已在Ubuntu 10.10,python-cairo 1.8.8,python-pygame 1.

  • 问题内容: 我最近将笔记本电脑升级到Snow Leopard,将TeX升级到了3.1415926版本(TeX Live 2011 / MacPorts 2011_5),并安装了Python 2.7.3。完成所有这些安装后,我运行了macport selfupdate和macport升级过时的情况。但是,现在,当我尝试在matplotlib中使用TeX时,会收到以下信息: 类似于上一个问题,我尝试通

  • 问题内容: 我在Wordpress页面中嵌入了一个React应用程序。它从JSON API中提取内容,并将其显示在各个区域中。 我的问题是,来自api的所有文本内容都显示为转义字符,即显示与号的位置。 我的wordpress页面通常会进行转换,但是对React内容没有影响。是因为渲染是在React中完成的吗?在哪种情况下,我需要以某种方式将React设置为使用UTF-8? 问题答案: HTML(包

  • 问题内容: iText可以在Swing应用程序中呈现PDF文档吗?还是我必须为此使用另一个库/框架? 问题答案: iText用于以编程方式生成PDF文件(例如,从HTML转换为PDF或生成PDF报告。) 要查看PDF,您可以使用ICEpdf之类的库