複数の環境を簡単に展開および管理できるように、django 設定ファイルをモジュール化しようとしています。
この順序でファイルをロードするように設定しました...
- settings.py - すべてに共通の設定
- config/country_XX - その国のインストールに固有の設定 (XX は US、CA、AU など)
- config/developer_XX - 特定の開発者のローカル開発環境に固有の設定
両方のセカンダリ ファイルは、以前のファイルで設定された値を変更できます。
通常を使用して 1 が 2 と 3 をロードすると、
from config.country_XX import *
これらのファイルに加えた変更は保持されます。
ただし、1 を使用して 2 と 3 をロードすると、
__import__()
また
importlib.import_module()
私が行った変更は保存されません。
よりクリーンなコードを書くことができるので、私は import_module を使用したいと思います
import_module('config.country_' + country)
それ以外の
if country = 'AA':
from config.country_AA import *
elif: country == 'BB'
from config.country_BB import *
...
これが私が持っているものです...あなたの考えを教えてください。
設定.py
import os
import sys
from django.utils import importlib
DEVELOPMENT = True
DEBUG = False
USES_24_HOUR_TIME = True
country_config = 'config.country_us'
developer_config = 'config.developer_jack'
try:
#importlib.import_module(country_config)
from config.country_us import *
if DEVELOPMENT:
#importlib.import_module(developer_config)
from config.developer_jack import *
except ImportError:
pass
config/country_us.py
import sys
globals().update(vars(sys.modules['settings']))
USES_24_HOUR_TIME = False
config/developer_jack.py
import sys
globals().update(vars(sys.modules['settings']))
DEBUG = True