我想知道是否有可能分開Django中的「本地」配置(靜態本地路徑,模板內容必須是絕對的,本地數據庫信息等。 。)來自「全局」配置(URL,中間件類,安裝的應用程序等),以便幾個人可以在Git或SVN上使用同一個項目,而無需在每次提交完成時重寫本地設置!Django settings.py:獨立的本地和全局配置
謝謝!
我想知道是否有可能分開Django中的「本地」配置(靜態本地路徑,模板內容必須是絕對的,本地數據庫信息等。 。)來自「全局」配置(URL,中間件類,安裝的應用程序等),以便幾個人可以在Git或SVN上使用同一個項目,而無需在每次提交完成時重寫本地設置!Django settings.py:獨立的本地和全局配置
謝謝!
是的,當然。 settings.py文件只是Python,因此您可以在其中執行任何操作 - 包括動態設置,並導入其他文件以覆蓋。
所以這裏有兩種方法。首先不是硬編碼任何路徑,而是動態計算它們。
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
TEMPLATE_DIRS = [
os.path.join(PROJECT_ROOT, "templates"),
]
等神奇的Python關鍵詞__file__
給出了路徑添加到當前文件。
第二是具有local_settings.py
文件SVN,這是在主settings.py的端進口的外面和覆蓋任何設置有:
try:
from local_settings import *
except ImportError:
pass
在try /除外,是確保即使local_settings不存在,它仍然有效。
當然,你可以嘗試這些方法的組合。
你可以將你的配置分割成不同的文件。由於它們是用python編寫的,你只需使用從其他設置文件導入設置,你甚至可以根據某些上下文將導入條件導入本地設置。
[如何在Django中管理本地和生產設置?](http://stackoverflow.com/questions/1626326/how-to-manage-local-vs-production-settings-in-django) – 2011-04-07 15:59:57
另見http://stackoverflow.com/questions/88259/how-do-you-configure-django-for-simple-development-and-deloyment – 2011-04-07 16:00:15