0

In django/conf/global_settings.py

DEBUG=False

In my project settings.py

DEBUG=True

but when i access the DEBUG from global_settings.py like

from django.conf import settings
print settings.DEBUG   //True

its printing True not False, why ?

and my second question is that

if Django has to provide DEBUG=True for each project setting file(myproj/setting.py) , then why cannot it make DEBUG=True in global_settings.py rather than DEBUG=False ?

4

1 回答 1

0

[1] 您的全局设置被您的settings.py文件覆盖,详见django 文档

从文档:

这是 Django 在编译设置时使用的算法:

  • 从 global_settings.py 加载设置。
  • 从指定的设置文件加载设置,必要时覆盖全局设置。

此外,当您认为您正在导入全局设置时,from django.conf import settings您实际上并没有访问模块,而是访问了一个对象(为什么不能从 运行django.conf.settings import DEBUG),并且该对象是上述算法的输出。

[2] 您必须DEBUG=True为每个项目指定(而不是在global_settings.py文件中)是出于安全原因。

debug 参数向项目显示了很多个人信息,这对开发中的调试很有用,但在生产中永远不应该访问。所以 Django 要求用户明确指定启用DEBUG.

于 2013-06-07T08:37:32.697 回答