Django项目中“来自django.conf导入设置”和“导入设置”之间的区别是什么?

时间:2013-11-14 11:09:31

标签: python django django-settings

我正在读大多数人from django.conf import settings,但我不明白在django项目文件中只做import settings的区别。任何人都可以解释这种差异吗?

2 个答案:

答案 0 :(得分:64)

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

因此,如果您尝试访问未在设置文件中指定的有效django设置,则会收到错误。

django.conf.settings不是一个文件,而是一个抽象概念,默认设置和特定于站点的设置的类。当您使用from django.conf import settings时,Django也会进行其他检查。

您也可以在django docs

中找到它

希望这有帮助。

答案 1 :(得分:12)

from django.conf import settings是更好的选择。

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