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)

template.html

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

于 2013-07-06T00:11:47.557 に答える