Python設定ファイルを使用しています。私は次の構造を持っています:
settings
├── base.py
├── __init__.py
├── local.py
├── production.py
└── staging.py
設定モジュールは、'settings.production' などの環境変数から取得されます。これは問題なく機能し、柔軟性のない古い settings.py ファイルを置き換えて、ステージング、本番、およびローカル サイトの設定をすべて適切に整理できるようにします。
呼び出しコードの Asettings = importlib.import_module(os.environ['DJANGO_SETTINGS_MODULE'])
は、新しい柔軟な設定を古いモジュールであるかのように取得します。これはクールで、ほとんどの場合機能します。
残念ながら、多くの古いレガシ コードは、「設定のインポート」を呼び出すことがあり、これは失敗します。
柔軟な設定構成の利点を失うことなくレガシー コードをサポートするには、「インポート設定」が「インポート設定.プロダクション」または環境変数で指定されているものとまったく同じである必要があります。
注:はい、これは私が古くて非常に大規模なDjango 1.3サイトで作業していますが、この質問をDjangoから独立させたと思います。