深入理解Django:框架内幕与实现原理
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.1 读取Django项目的配置信息

数据库的配置信息位于Django项目的settings.py文件中,项目执行命令或者启动时会读取这里的配置信息。除此之外,在Django内部还有一个默认的全局配置文件:django/conf/global_settings.py。如果在项目的settings.py文件中没有找到数据库的配置信息,则使用Django内部默认的全局配置文件中的信息。这种配置模式在框架中十分常见,例如,著名的爬虫框架Scrapy便是如此。下面思考两个问题:

◎ Django是如何识别项目的settings.py文件的?

◎ Django内部是如何实现先读取settings.py文件中的配置信息,如果没有找到,再读取global_settings.py文件中的配置信息的?

接下来带着这些问题进入Django源码的conf目录下进行学习。该目录下的源码文件如下:

◎ conf/app_template和conf/project_template目录:该目录下的文件分别为创建Django项目和Django应用的模板文件,在2.2节中曾介绍过。

◎ conf/local目录:该目录下的文件为Django支持的语言集。

◎ conf/urls/__init__.py:对一些视图层的方法取别名。

◎ conf/global_settings.py:默认的全局配置文件。

◎ conf/__init__.py:读取配置的核心代码。

在对上面的源码文件进行梳理后,读者可以将学习重心放到conf/__init__.py文件中。在conf/__init__.py文件中一共定义了4个类,其中比较重要的是LazySettings类和Settings类。