Django settings详解

荆哲
2023-12-01

Django settings详解

全局settings文件
from django.conf import global_settings

1.基础
DJANGO_SETTING_MODULE环境变量:让settings模块被包含到python可以找到的目录下,开发情况下不需要,我们通常会

在当前文件夹运行,python可以搜索到。如果需要运行在其他服务器上,就必须指定DJANGO_SETTINGS_MODULE变量。

2.默认设定
一个django的settings文件不需要我们手动去设置所有项目,因为系统已经默认设置好了。我们只需要修改我们使用的设

定就好了。默认的设置在django/conf/global_settings.py文件中。django在编译时,先载入global_settings.py中的配

置,然后加载指定的settings文件,重写改变的设定。

3.如何查看你所修改的setting?
django提供了一个简单的方法来展示你的setting和默认的setting的不同。在项目根目录下运行python manage.py

diffsettings,它将显示当前设定和django默认设定的不同之处。
如果当前的setting中出现了django默认的设定中没有的项,那么项目的最后会有“###”字符串。例如,默认的setting

没有定义ROOT_URLCONF,所以,ROOT_URLCONF的后面会跟上一个“###”字符串。

4.如何访问settings文件?
在其他module中,如果希望访问settings文件,可以使用from django.conf import settings来导入。
使用方法,例如:settings.DEBUG
注意:
1.django.conf.settings不是一个模块!它是一个对象。所以,我们没办法这样使用:
from django.conf.settings import DEBUG #错误!
2.不要导入global_settings或者我们自己写的settings。因为,django.conf.setting提取了global_settings和我们自

己写的settings里面的内容。相比直接导入自己写的settings文件和global_settings文件,它提供给我们的是一个接口

。可以实现解耦的作用。

5.不要再运行时修改你的settings设定!(出于安全考虑)

6.安全
因为settings文件包含了敏感的信息,比如数据库密码等。所以我们需要限制程序对这个文件的访问。

7.有效的settings项目

详见django的settings详解(2

8.创建自己的settings设置
我们可以随意设置自己的settings,只需要遵守两点:
1.setting的名字必须为大写
2.不要重新使用已经存在的setting

9.不使用DJANGO_SETTINGS_MODULE变量。
不常用,我们可以使用:
django.conf import settings
settings.configure(DEBUG=True,…)
这种方法可以绕开DJANGO_SETTINGS_MODULE环境变量,不需要指向一个settings文件。
注意:它和DJANGO_SETTINGS_MODULE不能同时出现。

10.使用自己的默认settings
如果不想使用系统自定义的django.conf.global_settings,那么可以使用如下方法:
from django.conf import settings
from myapp import myapp_defaults
settings.configure(default_settings=myapp_defaults,DEBUG=True)
一般情况下,我们最好使用默认的settings,因为他适合大多数情况。

 类似资料: