2014-01-17 46 views
1

我有一個Django應用程序,圖表來自Google圖表圖表api。我想替換圖表(他們折舊),並開始使用Matplotlib。Matplotlib和Django模板

所以我在這裏跟着例如,要獲得的Django/Matplot返回一個PNG:

http://wiki.scipy.org/Cookbook/Matplotlib/Django

現在,如果我想返回一個HTML頁面,嵌入Matplotlib圖像,我該怎麼做?我可以看到兩個選項。

1:我應該將HTML設置爲一個視圖,併爲圖表設置另一個視圖,分別對待這兩個部分(我猜數據會在圖像URL中編碼)。 HTML將被渲染,並且在圖像標記被渲染時,它將對Django進行第二次調用,並生成圖表。這似乎很容易設置,但似乎圖表數據將不必要的前後傳遞。

2:或者我可以在HTML的同一時間生成Matplot lib圖像,準備好png並同時發送它們嗎?我想我將不得不將文件寫入靜態文件所服務的地方。什麼會被認爲是文件/清理之後的命名方案的最佳做法?

是否有一種方法被認爲是這種事情的最佳實踐?我認爲這並不罕見。

回答

2

第一個選項幾乎肯定會更容易。只需將一個URL映射到調用matplotlib代碼的視圖,並在那裏返回圖像數據。

對於第二個選項,您可以使用data uri作爲模板中圖像的源代碼將圖像數據嵌入到HTML中,但這看起來似乎並不必要。