1
當你在「大企業」中做大型網站時,你最可愛的是和一些開發人員一起工作。如何用Django開發模塊化Web UI?
讓我們假設dev A插入新用戶數據,B創建用戶列表,C做一些特權管理,D做瘋狂統計圖與圖像生成等工作。
每個開發人員都開始開發他自己的組件,創建一個視圖和一個模板並獨立測試,直到每個組件工作。
現在,客戶希望將所有這些組件放在一個HTML頁面上。如何實現這一目標? 如何以組合形式組裝不同的視圖/模板,以便它們保持模塊化並且可以獨立開發和測試?
看起來繼承不是要走的路,因爲所有這些UI組件都是平等的,沒有層次結構。
組裝模板的想法是一樣的東西
<html>
<head>
// include the css for the components and their assembly
</head>
<body>
// include user data form here
<some containers, images, and so on>
// show user list
// show privilege administration in this part
// and finally, the nice statistic graphs
// perhaps, we want to display some other components here in future
</body>
</html>
我還沒有發現在網絡上的答案。大多數人想出了一個大模板,它只是實現了所有的UI功能,消除了所有的模塊性。每個組件都應有自己的模板和視圖,只處理由一個人開發的組件,然後將它們粘在一起,就像磚塊一樣。
我非常感謝任何提示!
似乎工作正常,雖然我不確定我採取的方式是最簡潔和必要的方式,但我找不到詳細的示例。 – nh2 2010-03-17 01:01:37
請參閱James Bennett的博客文章 - 它有點過時(它不包括快捷方式的裝飾器),但其原理是正確的:http://www.b-list.org/weblog/2006/jun/07/django -tips-write-better-template-tags/ – 2010-03-17 07:07:14
謝謝,那篇文章確實很清晰。 但是,你會推薦包含標籤,即使對於像表單等複雜的東西?我發現的大多數例子都是處理諸如'顯示這位作者的所有書籍'或者'從X獲取最新的NUM'的小事情,但實際上沒有一個例子,模板標籤包含的東西必須處理用戶輸入和相應的邏輯 - 在模板標記函數中,而不是視圖中,我覺得很奇怪,但我只是在猜測。 – nh2 2010-03-17 19:21:54