2017-08-05 68 views
0

我有以下文件夾設置:的Django放在哪裏共享模型和邏輯

  • 的myproject
  • 網絡
  • 工人

Web項目是包含典型的Django網站包括模型和一些將邏輯從視圖中移除的服務類。該網站將顯示來自數據庫的數據。 worker文件夾包含2個正在填充數據庫並對其進行聚合的類。這兩個類就像後臺進程。我的問題是,我應該如何構造這個?

  • 如果每個工人類得到他自己的應用程序文件夾
  • 如果是的話,我寧願模型搬出web項目中的myproject文件夾,因爲它們是在應用程序之間共享。不過這似乎是違反Django慣例,爲什麼呢?大會將如何處理這個問題?
  • 如果不是,我應該在哪裏放置這些工作進程?我應該如何運行它們?

在此先感謝!

+0

這是一個非常廣泛的問題。項目組織將會把項目變成項目。您需要將模型保存在「應用程序」目錄中,以便Django處理任何遷移。如果班上沒有桌子,就把它放在任何你想要的地方。 –

回答

0

通常,如果我有東西給不同部分之間共享,我不是: 1)使lib和通過PIP 2安裝)項目

+0

是的,這是我的觀點,我只是分享模型。不是其他的網頁priject,所以我想將它們移動到一個lib文件夾,但這是違反django公約 –

+0

這不是違反django約定,包裝在一個lib不違反DRY對我來說這似乎很正確 –

0

內造一個配偶幫助文件夾保留項目和應用程序( s)分離並創建適當的Python包來處理依賴關係。即

src/sites/web <-- the project, containing manage.py, settings and root urls 

src/apps/myapp <-- the app, containing models, views, etc 
src/apps/myapp/worker <-- strongly related functionality 

src/sites/web/setup.py(和/或requirements.txt),你會增加myapp爲(安裝)依賴。

如果worker只是鬆散的相關功能,然後一個單獨的包纔有意義,如:

src/lib/worker 

其中src/lib/worker/setup.py(和/或requirements.txt)將增加myapp作爲依賴,並src/sites/web/setup.py會增加worker爲依賴關係。