一部の 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
どちらも意図したとおりに機能しますが、落とし穴がないかどうか、一般的にどちらのアプローチがより推奨されているか、またその理由が知りたいです。