ylabel - python title position




大型django項目的項目設計/ FS佈局 (4)

佈局大型django項目的最佳方法是什麼? 這些教程提供了有關設置應用程序,模型和視圖的簡單說明,但是關於應如何細分應用程序和項目的信息較少,在典型項目中應用程序之間允許/必要共享的數量較少(顯然這在很大程度上取決於項目)以及應保留一般模板的方式/位置。

有沒有人有關於為什麼某個項目佈局比另一個更好的例子,建議和解釋 ? 我特別感興趣的是結合了大量的單元測試(實際代碼庫大小的2-5倍)和字符串外化/模板。


Pinax項目圍繞小型可重用應用程序的構想而構建,這些應用程序可輕鬆集成到項目中。 他們使用Cloud 27項目作為演示項目。

我正在研究的Django項目(稱為Basie。它是0.1之前的,所以還沒有鏈接。)正在嘗試遵循Pinax模型,到目前為止它的運作相當不錯。


主要指南與任何其他大型代碼項目類似。 應用程序應該解決一個明確定義的責任。 “申請”這個名稱用詞不當; Django應用程序應該被視為可重用的組件,可以將它們連接在一起以創建真正的應用程序。 每個應用程序的測試應該包含在該應用程序中。 應盡可能將應用程序彼此分離,但顯然會存在依賴關係,因此目標應該是使依賴關係圖盡可能簡單明了。

我更喜歡將項目的所有模板保存在單個項目範圍的模板目錄下,每個應用程序都有一個子目錄(使用每個應用程序的模板子目錄是Django中非常強大的約定,因為它避免了應用程序之間的模板名稱衝突) 。 單個項目範圍模板目錄的原因是模板,模板繼承樹和塊名稱可能非常特定於項目,因此很難提供可以插入任何項目的“默認”應用程序模板。 已經有一些嘗試來解決基本站點範圍模板和它們定義的塊的標準命名約定,但我還沒有看到標准出現(他們在Pinax做事的方式可能是我們最接近的標準)。

重新“字符串外化”,如果你的意思是i18n和l10n,Django強烈支持它放置.po文件的標準位置 - 檢查docs


我目前的佈局源於我想要擁有我的網站的測試版本。 這意味著每個站點都有兩個項目,因為它們需要不同的配置,並迫使我將所有應用程序移出項目。

我創建了兩個文件夾:$ APP_ROOT / devel和$ APP_ROOT / prod。 這些包含所有應用程序。 使用源代碼控制(在我的情況下是git)我在HEAD版本中開發了應用程序,而prod中的應用程序被鎖定到PROD標記。 模板也有自己的文件夾,其佈局與應用程序相同。

現在,我可以在devel-apps文件夾和匹配的模板文件夾中進行所有開發。 當我有一些我很滿意的東西時,我會標記該修訂並更新產品。


我真的很喜歡Randall Degges關於這個主題帖子。 他沒有提供關於如何將設置文件粘合在一起的信息,但我會有一個帖子,我可以鏈接,但是現在任何人都可以查看我的回購 ,其中我在自述文件中包含了一些方向。





design