- Django的Settings模块代码说明
- Django的
override_settings
修饰器分析
前言
前两天刚刚看了Django settings的实现,今天又发现了测试工具中有个
override_settings
修饰器,于是就想从它下手来分析一下Django的
settings
。
本篇文章主要分析的是
override_settings
作为修饰器的实现,其作为上下文管理器的部分并未详细分析。
Django的settings说明
在分析这个修饰器之前,我们先来了解一下Django的
settings
是如何实现的, Django的
settings
的代码存放在
django/conf/__init__.py
中,其中主要有三个类,
LazySettings
,
Settings
和
UserSettingsHolder
。
Settings
Settings
类实现了Django配置的载入和存储功能,在它的
__init__
函数中,首先从
django/conf/global_settings.py
文件中导入Django默认的配置,然后再从
DJANGO_SETTINGS_MODULE
环境变量所指定的配置文件中导入我们项目自定义的配置,然后逐项地检查并添加配置。
需要注意的是,
Settings