2017-04-26 64 views
1

我正在研究一個分爲5個應用程序的Django項目(每個都有3-6個模型)。總的來說,這個項目肯定是我可以在其他項目中重用的東西,但它只會包含所有應用程序,因爲它們與內在相關。推薦的方法來打包一個Django項目? Django包含多個應用程序或多個Django包?

因此,我想打包該項目以使其可重複使用,遵循Django docsDjango cookiecutter django package。但是,這些示例僅顯示如何使用單個應用進行打包。

從我已閱讀有幾個選項:

  1. 製作5包
  2. 製作一個應用程序有30款,並轉換成models.py模塊
  3. 生成一個包,5個應用程序(類似於如何django-allauth是設置)

我使用選項3,因爲我覺得選項1是矯枉過正和選項2被認爲是不好的做法規劃(見this postthis post)。我選擇3所看到的問題是,那麼使用該一攬子計劃將有一個項目要安裝所有5個應用程序在INSTALLED_APPS像這樣:

INSTALLED_APPS = [ 
    'project', 
    'project.app1', 
    'project.app2',... 
] 

有沒有一種方法,以避免安裝在INSTALLED_APPS如果所有的應用程序我用5個應用程序打包項目?或者對於這個用例更好的選擇1或2?

+0

我也想做到這一點。任何進展? –

回答

1

如果應用程序非常耦合並且只能一起使用,那麼IMO將它們放在不同的包中是沒有意義的。因此,選項3是答案:如果它是私密的,則將它們全部放在一個包中,通過setup.py安裝,如果它是公開的,則在pip上發佈。

無恥插頭:對於相關的Django的應用程序等建議,你可能有興趣在我的「你的Django應用程序是一個用戶界面」講:https://www.youtube.com/watch?v=Mnzvjn1v1CY(幻燈片here

相關問題