我正在開發一個基於網絡的大學門戶,該門戶將基於Django。我們仍處於探索階段,我正在努力尋找將項目/開發環境的最佳方式。大型Django應用程序佈局
我最初的想法是將系統開發爲一個Django「應用程序」,它包含用於分離出系統不同部分的子應用程序。我打算製作這些「子」應用程序的原因是,他們不會在父應用程序之外使用任何其他應用程序,因此分開分發這些應用程序幾乎沒有意義。我們預計該門戶將安裝在多個位置(例如,在不同的大學),因此主應用程序可以放入多個Django項目中進行安裝。因此,我們爲每個位置的項目都有一個不同的存儲庫,它實際上只是定義安裝的門戶網站應用程序的settings.py
文件,以及將url定位到它的urls.py
。
雖然我已經開始編寫一些初始代碼,但我遇到了一個問題。一些處理用戶身份驗證和配置文件的代碼似乎沒有家。它在概念上並不屬於門戶應用程序,因爲它與門戶的功能無關。但是,它也不能進入項目存儲庫 - 因爲我會在每個位置的存儲庫中複製代碼。例如,如果我在此代碼中發現了一個錯誤,那麼我將不得不手動複製該位置的所有項目文件中的修復程序。
我的解決辦法是讓所有項目都重新分配一個「主」位置項目的分支,以便我可以從該主分區中提取任何更改。我認爲這很麻煩,而且這意味着我有一個更多的資源庫來照顧。
我正在尋找更好的方法來實現這個項目。任何人都可以推薦一個解決方案或類似的例子,我可以看看?問題似乎是我正在開發一個Django 項目而不只是一個Django 應用程序。
正如我在@ Jack的回答中所提到的那樣:我正在開發基本上是Django *項目*,而不僅僅是一個Django *應用程序*。因此,我需要在一個存儲庫中組織我的項目,並使用諸如local_settings.py技巧之類的東西來改變諸如安裝應用程序的不同站點的站點標題之類的內容。 – 2010-04-20 18:28:12
(有點晚了,但...)除非你使用了很多非常Django特定的東西(管理員,第三方應用程序等),否則我會堅持使用更低層次的東西,比如Flask。這樣你可以完全控制你做事的方式。我剛剛將Django傾倒在我正在開發的一個更大的項目中。我所做的每件事都必須在問題出現問題後,完全按照Django的方式完成。 – orokusaki 2010-09-20 19:52:05