В некоторых из моих приложений Django я использую файл settings_local.py
для переопределения настроек, которые различаются в разных средах (, например. разработка, испытания и производство ). Первоначально я использовал следующий код, чтобы включить его содержимое вsettings.py
:
try:
from settings_local import *
except ImportError:
sys.stderr.write("The settings_local.py file is missing.\n")
DEBUG=False
Недавно я нашел функцию execfile
и переключился на что-то вроде:
try:
execfile(path.join(PROJECT_ROOT, "settings_local.py"))
except IOError:
sys.stderr.write("The settings_local.py file is missing.\n"
DEBUG=False
Оба работают по назначению, но мне любопытно, не пропускаю ли я какие-либо ошибки, и вообще, какой подход более рекомендуется и почему.