Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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
Python django项目中的“from django.conf import settings”和“import settings”有什么区别_Python_Django_Django Settings - Fatal编程技术网

Python django项目中的“from django.conf import settings”和“import settings”有什么区别

Python django项目中的“from django.conf import settings”和“import settings”有什么区别,python,django,django-settings,Python,Django,Django Settings,我了解到大多数人都是通过django.conf导入设置进行导入的,但我不理解在django项目文件中进行导入设置的区别。有人能解释一下区别吗?从django.conf导入设置是更好的选择 我对同一个django项目使用不同的设置文件,一个用于live,一个用于dev,第一个将选择正在执行的设置。导入设置将导入在sys.path中找到的名为settings.py的第一个python模块。通常在默认django设置中,它只允许访问站点定义的设置文件,该文件将覆盖django默认设置django.co

我了解到大多数人都是通过django.conf导入设置进行导入的,但我不理解在django项目文件中进行导入设置的区别。有人能解释一下区别吗?

从django.conf导入设置是更好的选择

我对同一个django项目使用不同的设置文件,一个用于live,一个用于dev,第一个将选择正在执行的设置。

导入设置将导入在sys.path中找到的名为settings.py的第一个python模块。通常在默认django设置中,它只允许访问站点定义的设置文件,该文件将覆盖django默认设置django.conf.global_设置

因此,如果您试图访问设置文件中未指定的有效django设置,您将得到一个错误

django.conf.settings不是一个文件,而是一个抽象概念、默认设置和站点特定设置的类。使用from Django.conf导入设置时,Django还会执行其他检查

您也可以在中找到它


希望这有帮助。

django.conf设置是django默认设置或全局设置,您可以使用自己的基于项目的设置覆盖这些设置。永远不要使用第二种形式。第一个是唯一正确的。但是为什么不使用第二个呢?导入设置的可能副本将导入sys.path中名为settings.py的第一个python模块。这可能不是站点定义的设置文件,该文件在环境变量DJANGO_settings_MODULE中查找,可以是任何python包或模块。@Brunodesshuillers谢谢。我更新我的答案时注意到您的更正。在项目根目录中将settings.py保留在manage.py旁边是默认的Django设置吗?O.O我认为默认设置是将其设置为/settings.py。至少django admin startproject就是这么说的。