1

我目前正在玩pygooglechart。它是 Google 图表的 Python 包装器。

在我的views.py中,我有以下内容:

from pygooglechart import PieChart3D

def pytest(request):
     chart = PieChart3D(250, 100)
     chart.add_data([20, 10])
     chart.set_pie_labels(['Hello', 'World'])

在我的 urls.py 中,我链接了视图:

urlpatterns = patterns('',
    (r'^admin/', include(admin.site.urls)), 
    (r'^report/$', 'App.djangoapp.views.reporting'),
    (r'^facebook/', 'App.djangoapp.views.facebook'),
    (r'^twitter/', 'App.djangoapp.views.twitter'),
    (r'^pytest/', 'App.djangoapp.views.pytest'),

我知道我需要为我的 pytest 视图添加一个 HttpResponse,但我不知道如何为正在访问该 url 的客户端呈现图像。当客户端访问该 url 时,它应该只生成图形的图像。我该怎么做呢?

4

1 回答 1

3

您可以使用几种方法。

使用重定向示例:

视图.py

from django.http import HttpResponseRedirect
from pygooglechart import PieChart3D


def pytest(request):
    chart = PieChart3D(250, 100)
    chart.add_data([20, 10])
    chart.set_pie_labels(['Hello', 'World'])
    return HttpResponseRedirect(chart.get_url())

与模板一起使用的示例:

视图.py

from django.template import RequestContext
from django.shortcuts import render_to_response
from pygooglechart import PieChart3D


def pytest(request):
    chart = PieChart3D(250, 100)
    chart.add_data([20, 10])
    chart.set_pie_labels(['Hello', 'World'])
    context = RequestContext(request, {
        'url_to_chart': chart.get_url()
    })
    template = 'path/to/template.html'
    return render_to_response(template, context)

模板.html

<img src="{{ url_to_chart }}" alt="" />

于 2013-07-06T00:11:47.557 回答