在django應用程序中的各種代碼文件之間共享某些常量有時是有益的。Django - 如何在應用程序內共享配置常量?
例子:
- 名稱或在不同的模塊中轉儲文件的位置\命令等
- 上\調試模式關閉整個應用程序
- 網站具體配置
什麼是優雅\ pythonic這樣做的方式?
在django應用程序中的各種代碼文件之間共享某些常量有時是有益的。Django - 如何在應用程序內共享配置常量?
例子:
- 名稱或在不同的模塊中轉儲文件的位置\命令等
- 上\調試模式關閉整個應用程序
- 網站具體配置
什麼是優雅\ pythonic這樣做的方式?
創建配置模塊。
Configuration.py:(在你的項目/應用程序源代碼目錄)
MYCONST1 = 1
MYCONST2 = "rabbit"
導入從其他源文件:
from Configuration import MYCONST1,MYCONST2
...
有已經是項目範圍settings.py
文件。這是放置自己的定製設置的理想場所。
,你可以在你的settings.py提供的設置,如
MY_SETTING = 'value'
任何模塊中,你可以像
from django.conf import settings
settings.MY_SETTING
Django的應用程序獲取它的意思是(或多或少)可插拔。因此,你不應該破解應用程序的代碼,以便參數化你想要的東西(如果你必須這樣做,這將是一個相當混亂的事情!想象一下,你想升級你在互聯網上下載的應用程序......你將不得不重新入侵新版本的代碼?!?)。
因此,您不應該在應用程序級別添加應用程序級別的設置,而應將它們放在項目範圍內的某個地方settings.py
。
確實,這就是爲什麼我特別詢問了應用範圍 – Jonathan 2010-07-14 09:02:00
@Jonathan:你正在尋找一個* app特定的*設置文件嗎?可以在項目設置文件中稍後覆蓋的東西? – 2010-07-14 10:17:44
@Jonathan,你可以/應該把settings.py中的應用程序特定設置,最終一個項目在服務器上運行而不是應用程序本身 – 2010-07-14 10:52:17