源码分析
1、导入settings文件的方式是
from django.conf import settings
2、点进settings文件中
# 发现settings是LazySettings的实例化对象
settings = LazySettings()
3、点击LazySettings到类的定义中
class LazySettings(LazyObject):
def _setup(self, name=None):
# os.environ 相当于是一个全局的字典,只要在项目当中通过os.environ都可以拿到这个字典,这里是从这个字典中取一个ENVIRONMENT_VARIABLE
settings_module = os.environ.get(ENVIRONMENT_VARIABLE)
if not settings_module:
... ...
4、点击ENVIRONMENT_VARIABLE进去看取得到底是什么值
ENVIRONMENT_VARIABLE = "DJANGO_SETTINGS_MODULE"
看到这里得出是想从全局拿一个DJANGO_SETTINGS_MODULE的值,但是这个值在什么时候设置的呢,Django一旦启动肯定回查找settings文件,而Django的启动文件又是 manage.py,所以可以去 manage.py 中找找。
5、在 manage.py 中有这一句,相当于是字典的赋值,而这里的值就是项目中我们可以进行配置的settings文件的路径。
# 相当于 os.environ["DJ