2013-05-19 2 views
0

django app, 동적 인 몇 가지 요약 정보를 나열하는 index 페이지가 있습니다 (db의 일부 사용자 입력 데이터를 기반으로 함). 나는, 지금, 홈 page..So에하기 matplotlib에 의해 생성 된 차트 이미지를 포함 할 django에서 이미지를 렌더링하기위한 URL 패턴을 쓰려면

urlpatterns=patterns('', 
    ... 
    url(r'^$', 'myapp.views.index',dict(template_name = 'myapp/index.html'), name = 'home'), 
... 

urls.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) 

views.py

아래로 코딩 한 사용자가 색인 페이지 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> 

차트보기 내가보기 sothat urlpatternsurl(...)를 만들 필요가 page.But 이미 인덱스에 매핑 나는 urlmapping.The의 URL r'^$',을 수행하는 방법을 잘 모르겠습니다

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 

입니다 render_chart()는 myapp_render_chart이라는 이름과 연결되어 있으므로 {% url %} 태그 내에서 호출 할 수 있습니다. 누군가가 이것을 도와 줄 수 있습니까?

답변

1

다른 URL 매핑을 원하십니까? 이미 가지고있는 것과는 크게 다르지 않을 것입니다. 예 :

urlpatterns = patterns("myapp.views", 
    url(r'^$', 'index',dict(template_name = 'myapp/index.html'), name = 'home'), 
    url(r'^kick-ass-chart/$', 'render_chart', name='myapp_render_chart'), 
) 
+0

감사합니다. Ciske, 나는 결코 사용되지 않는 '킥 - 엉덩이 차트'URL 정규식을 넣는 것에 대해 의구심이있었습니다. – damon