python - example - django tutorial



組織大型Django項目指南 (2)

我發現看看大型的開源Django項目並註意這個項目是如何實現它是有幫助的。 Django的網站有一個很好的開源項目清單:

http://code.djangoproject.com/wiki/DjangoResources#Open-SourceDjangoprojects

與穀歌一樣(儘管其中大多數是較小的附加模板標籤和中間件:

http://code.google.com/hosting/search?q=label:django

當然,僅僅因為一個項目這樣做並不意味著這種方式是正確的(或錯誤的方式)。 其中一些項目比其他項目更成功。

最後,真正了解哪些方法有效且無效的唯一方法是自己嘗試一下。 除非您自己嘗試,否則世界上的所有提示和提示都無法幫助,但它們可以幫助您開始正確的方向。

https://ffff65535.com

任何人都可以推荐一本很好的指南/教程/文章,提供關於如何組織和分割大型Django項目的提示/指導?

當您需要開始分解初始獨特文件(models.py,urls.py,views.py)和使用超過幾十個實體時,我正在尋找建議。


每個“應用程序”應該很小 - 一個可重用的實體加上一些相關的表。 我們每個應用程序模型有大約5個加/減2個表格。 我們大部分的6種應用程序都小於5個表格。 一個在模型中有零表。

每個應用程序應該被設計成一個可重用的概念。 在我們的案例中,每個應用程序都是整個網站的一部分; 應用程序可以被刪除並單獨更換。

的確,這是我們的戰略。 隨著我們的要求擴大和成熟,我們可以相互獨立地刪除和替換應用程序。

讓應用程序彼此依賴是可以的。 但是,依賴必須局限於“模型”和“形式”這些顯而易見的東西。 另外,應用程序可以依賴於彼此的URL中的名稱。 因此,您指定的URL必須具有“application-view”這樣的表單,以便reverse功能或{% url %}標記可以正確找到它們。

每個應用程序應該包含它自己的批處理命令(通常通過可以通過django-admin腳本找到的正式命令。

最後,任何比共享的簡單模型或表單更複雜的東西可能不屬於任何一個應用程序,但需要是獨立的共享庫。 例如,我們使用XLRD ,但將它的一部分包裝在我們自己的類中,因此它更像是內置的csv模塊。 XLRD的這個包裝器不是任何應用程序的適當部分,因為它是Django應用程序之外的獨立模塊。





projects