在django / conf / global_settings.py
中DEBUG=False
在我的项目settings.py
中DEBUG=True
但是当我从global_settings.py访问DEBUG时
from django.conf import settings
print settings.DEBUG //True
它的印刷真的不是假的,为什么?
我的第二个问题是
如果Django必须为每个项目设置文件(myproj / setting.py)提供DEBUG = True,那么为什么不能在global_settings.py中使DEBUG = True而不是DEBUG = False?
答案 0 :(得分:0)
[1]您的settings.py
文件会覆盖您的全局设置,详见django documentation。
来自文档:
这是Django在编译设置时使用的算法:
- 从global_settings.py加载设置。
- 从指定的设置文件加载设置,根据需要覆盖全局设置。
此外,如果您认为使用from django.conf import settings
导入全局设置,则实际上并未访问模块,而是一个对象(为什么您无法从django.conf.settings import DEBUG
运行)并且该对象是输出上面的算法。
[2]您必须为每个项目指定DEBUG=True
(而不是在global_settings.py
文件中指定)的原因是出于安全原因。
debug参数向项目显示许多个人信息,这对于开发中的调试很有用,但从不在生产中访问。所以Django要求用户明确指定启用DEBUG
。