在我的django
应用程序中,我有一个index
页面列出了一些动态的摘要信息(基于数据库中的一些用户输入数据)。我已将其编码如下
视图.py
def custom_render(request,context,template):
req_context=RequestContext(request,context)
return render_to_response(template,req_context)
@login_required
def index(request, template_name):
summary_info = get_summary(...)
return custom_render(request,{'summary':summary_info},template_name)
网址.py
urlpatterns=patterns('',
...
url(r'^$', 'myapp.views.index',dict(template_name = 'myapp/index.html'), name = 'home'),
...
现在,我想在主页上包含一个由 matplotlib 生成的图表图像。所以,当用户请求索引页面 url 时,他可以看到摘要信息和图表
我已经编写了 index.html 如下
{% extends "myapp/base.html" %}
....
<div id='summary'>
{# here display the summary #}
...
</div>
<div id='chart'>
<img class="chartimage"src="{% url myapp_render_chart %}"
alt="chart"
/>
</div>
图表视图是
def render_chart(request):
data = get_data(request.user)
canvas = None
if data:
canvas = create_piechart(data)
response = HttpResponse(content_type = 'image/png')
if canvas:
canvas.print_png(response)
return response
import matplotlib.pyplot as plt
def create_piechart(data,chartsize=(16,16)):
...
figure = plt.figure(figsize = chartsize)
plt.pie(fracs, labels=labels, autopct='%1.1f%%', shadow=True)
canvas = FigureCanvas(figure)
plt.close(figure)
return canvas
我不确定应该如何进行 urlmapping。urlr'^$',
已经映射到索引页面。但是我需要创建一个url(...)
inurlpatterns
以便视图 render_chart() 与名称相关联,myapp_render_chart
因此可以在{% url %}
tag 中调用。有人可以帮我吗?