我有一個django視圖,生成一堆數據,我想將其分解爲三個不同的圖表以顯示在模板中。我可以逐個生成圖表並做一個簡單的返回HttpResponse()來確定我使用正確的數據創建它們等。使用報告實驗室創建條形圖並在模板中顯示
由於這是我第一次使用ReportLab,我想使當然,我正在採取正確的方法,在Web應用程序中生成這些演示文稿。我可以看到兩種不同的方式來處理這個問題:
圖表的二進制表示實際上傳遞給模板,並將其分配給img標籤。 (不幸的是,我迄今爲止沒有成功 - 當我將二進制數據轉儲到模板中時,它是空的)
- 將圖表另存爲圖像並在模板中引用靜態圖像。
我正在尋找一些建議哪種方法採取和可能的話,一些提示的實現。
僅供參考,這裏是從生產的圖表(這在很大程度上來自DjangoProject維基樣品建)視圖中的片段:
#instantiate a drawing object
import mycharts
d = mycharts.MyBarChartDrawing(width=800, height=500)
d.chart.categoryAxis.categoryNames = ['Pre-Operative Visit', '6-Week Visit', '3-Month Visit ', '6-Month Visit', '12-Month Visit']
d.chart.data = vas_scores_wrapper
#get a GIF (or PNG, JPG, or whatever)
image_data = d.asString('png')
return HttpResponse(image_data, 'image/gif')
return render_to_response('summaries/study_summary.html', {'patients':patient_list,'query_form':query_form,'image_data':image_data}, context_instance=RequestContext(request))
這將起作用,以產生BARCHART。 FWIW,將'image_data'傳遞給模板並將其轉儲到該模板上並不顯示任何內容。也許你不能將二進制數據直接傳遞給模板?