Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
覆盖后Django全局设置参数是否受影响?_Django - Fatal编程技术网

覆盖后Django全局设置参数是否受影响?

覆盖后Django全局设置参数是否受影响?,django,Django,在django/conf/global_settings.py中 DEBUG=False DEBUG=True 在my project settings.py中 DEBUG=False DEBUG=True 但是当我从global_settings.py访问调试时 from django.conf import settings print settings.DEBUG //True 这是真的不是假,为什么 我的第二个问题是 如果Django必须为每个项目设置文件(myproj/s

在django/conf/global_settings.py中

DEBUG=False
DEBUG=True
在my project settings.py中

DEBUG=False
DEBUG=True
但是当我从global_settings.py访问调试时

from django.conf import settings
print settings.DEBUG   //True
这是真的不是假,为什么

我的第二个问题是


如果Django必须为每个项目设置文件(myproj/setting.py)提供DEBUG=True,那么为什么它不能在global_settings.py中使DEBUG=True而不是DEBUG=False呢?

[1]您的全局设置会被
settings.py
文件覆盖,如中所述

从文档中:

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

  • 从全局_settings.py加载设置
  • 从指定的设置文件加载设置,必要时覆盖全局设置
此外,当您认为您正在使用从django.conf导入设置导入全局设置时,您实际上并不是在访问模块,而是在访问一个对象(为什么您不能从
django.conf.settings导入调试
),该对象是上述算法的输出

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

debug参数向项目显示了许多个人信息,这些信息对于开发中的调试非常有用,但在生产中永远不应该被访问。因此Django要求用户明确指定启用
DEBUG