Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python __链接多个django设置文件时,导入\或导入\模块vs导入_Python_Django_Settings_Django Settings - Fatal编程技术网

Python __链接多个django设置文件时,导入\或导入\模块vs导入

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 * 我在这些文件中所做的

我正在尝试模块化我的django设置文件,以便更容易部署和管理我们的多个环境

我已经设置好按这个顺序加载我的文件

  • settings.py-对所有用户通用的设置
  • config/country_XX-特定于该国家/地区安装的设置(XX可以是美国、CA、AU等)
  • config/developer_XX-特定于特定开发人员的本地开发环境的设置
  • 这两个辅助文件都可以更改以前文件中设置的值

    我发现如果1使用法线加载2和3

    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