Python __链接多个django设置文件时,导入\或导入\模块vs导入
我正在尝试模块化我的django设置文件,以便更容易部署和管理我们的多个环境 我已经设置好按这个顺序加载我的文件Python __链接多个django设置文件时,导入\或导入\模块vs导入,python,django,settings,django-settings,Python,Django,Settings,Django Settings,我正在尝试模块化我的django设置文件,以便更容易部署和管理我们的多个环境 我已经设置好按这个顺序加载我的文件 settings.py-对所有用户通用的设置 config/country_XX-特定于该国家/地区安装的设置(XX可以是美国、CA、AU等) config/developer_XX-特定于特定开发人员的本地开发环境的设置 这两个辅助文件都可以更改以前文件中设置的值 我发现如果1使用法线加载2和3 from config.country_XX import * 我在这些文件中所做的
from config.country_XX import *
我在这些文件中所做的更改将被保留
但是,如果1使用
__import__()
或
我所做的更改不会被保留
我更喜欢使用import_模块,因为它允许我编写更干净的代码
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\u jack.py
import sys
globals().update(vars(sys.modules['settings']))
DEBUG = True
这就是让我开始的原因:
import sys
globals().update(vars(sys.modules['settings']))
DEBUG = True