2011-07-17 23 views
0

我正在使用AJAX從服務器檢索數據並將其顯示在網頁上的網站上工作。 Django使用其模板引擎呈現初始頁面內容(因此它將被搜索引擎編入索引)。當用戶採取行動時,jQuery通過AJAX獲取新數據,並將響應作爲JSON返回。我想讓jQuery在不違反DRY Principle的情況下渲染這個新內容。因此我想使用在Django和jQuery之間「共享」的模板引擎。我一直在試圖尋找最佳解決方案,但似乎總是遇到一個障礙。一起實現Django模板和jQuery模板

這已經完成了嗎?以下是我想到的選項:

  • 使用正則表達式將Django模板轉換爲正確的jQuery模板語法,並以原始形式將其呈現給頁面。然後jQuery將選取它並使用它來呈現新數據。
  • 擴展jQuery模板引擎以識別Django模板語法,再次將原始Django模板呈現給jQuery使用的頁面。

這是否成功完成?無論哪種方式,除了最簡單的Django模板之外,對於其他任何東西似乎都有很多工作,因爲需要考慮Django標籤和過濾器的過多。

回答

1

最好的辦法是選擇一種既支持Javascript又支持Python的模板語言,並將其用於任何地方。

據我所知,Mustache是你最好的選擇。

+0

感謝您的鏈接。我以前見過鬍子,但還沒有嘗試實現它,因爲我希望堅持使用django模板語言(現在)。 –

0

我還沒有找到完美解決方案,因爲我問了這個問題,但爲了開發時間,我決定在AJAX響應中返回JSON和HTML。這樣,Django模板仍然可以執行HTML生成,但是JavaScript仍然可以自由地使用數據而無需解析HTML。

我通過網絡發送的數據量大約是數據的兩倍,但我會一直使用它,直到我的應用程序增長到更小的響應爲止。在那時,我可能會像羅布所說的那樣研究像鬍鬚那樣的東西。