在django中,使用local_settings.py
文件補充settings.py
非常普遍,因此每臺機器都可以有不同的設置。通常人們會這樣做。使用exec和python進口
try:
from local_settings import *
except ImportError:
print "No local settings found!"
但是設置文件通常包含大的列表,如INSTALLED_APPS
。如果我想添加一個應用程序,我寧願不將整個列表複製到local_settings.py
並修改它(使可讀代碼較少,並且更新settings.py
不再影響任何重寫INSTALLED_APPS
的計算機)。所以,我想我可以做這樣的事情:
try:
f = open('local_settings.py','r')
exec f.read()
except IOError:
print "No local settings found!"
現在local_settings.py
不再重寫整個INSTALLED_APPS
變量:
INSTALLED_APPS.append('debug_toolbar')
我的印象是,任何時候你使用exec
或eval
你可能做錯了什麼。所以我的問題是,這有什麼問題,有沒有更好的方法來做到這一點?
您希望修改默認值並不排除使用'import'。你爲什麼認爲你需要使用'exec'來完成這個任務? – cdhowie