首先研究Django的settings有何功能,1 提供了两个settings配置模块,一个是系统默认配置模块global_settings.py;和提供给用户自定义设置的settings模块settings.py。Django在这里为两种配置方案设计了一个优先级,自定义设置高与系统默认配置,
也就是说,只要用户在settings.py中配置了某项参数,就以用户配置的参数为准,如果用户没有设置,则以系统默认配置为准。
代码中的提现:from django.conf import settings 在这里导入的settings对象即具备settings.py中的属性,也具备global_settings.py中的属性。直白的说就是settings对象通过点方法可以点出两个不同模块的属性,而且还具备优先级,settings.py的优先级高与global_settings.py。
代码实现
class Settings: def __init__(self): for kay in dir(global_settings): if kay.isupper(): value = getattr(global_settings, kay) setattr(self, kay, value) for kay in dir(custom_settings): if kay.isupper(): value = getattr(custom_settings, kay) setattr(self, kay, value) settings = Settings()