django.conf导入设置vs来自project.settings导入VAR

时间:2018-06-13 13:30:54

标签: django settings

我在这里阅读有关django settings

的文章

我理解" django.conf.settings不是一个模块 - 它是一个对象。"这就是我无法导入变量的原因。我只需要在我的设置中使用语句CURRENCIES。

正确的方法是from django.conf import settings然后var = settings.CURRENCIES还是from [projectname].settings import CURRENCIES

两者都适合我。但我想知道是否有推荐的方法。

1 个答案:

答案 0 :(得分:1)

此方法from django.conf import settings更可取。对于不同的环境,您可能有不同的设置文件,例如test_settings.pydev_settings.pyprod_settings.py。使用from django.conf import settings,您的代码会自动为您提供项目使用设置。

另外,第二种方法不允许您访问未在设置文件中定义的默认设置。

引自django docs

  

另请注意,您的代码不应从global_settings导入   或您自己的设置文件。 django.conf.settings抽象概念   默认设置和特定于站点的设置;它呈现单一   接口。它还解耦了使用设置的代码   设置的位置。