В некоторых моих приложениях 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
Оба работают по назначению, но мне любопытно, не хватает ли я каких-либо ошибок, и вообще какой подход более рекомендуется и почему.