Django-导入django.conf.settings和导入设置之间的区别


99

Django应用程序中以下import语句之间的基本区别是什么?

import settings

from django.conf import settings

1
+1,因为对于谁是Django开发新手来说这是一个非常有趣的问题。

Answers:


134
import settings

将导入Django项目的settings(.py)模块(当然,如果您是从应用程序的“ root”包中编写此代码的话)

from django.conf import settings

将从django.conf包(Django提供的文件)中导入设置对象这很重要,因为

[..]请注意,您的代码不应从global_settings或您自己的设置文件中导入。django.conf.settings抽象了默认设置和特定于站点的设置的概念;它提供了一个界面。它还将使用设置的代码与设置的位置解耦。

更新:如果要定义一些自己的设置,请参阅文档的此部分


4
仅供参考,global_settings是django.conf包中的另一个模块。如文档所述,请勿使用它。

3
请注意,from django.conf import settings如果您还希望能够在单元测试期间覆盖设置,则使用至关重要。
2015年

4
另请注意,所有设置名称均应为大写。也就是说,如果你有一个变种my_var在你设置那么这将失败:from django.conf import settings... settings.my_var。但是,如果您命名,MY_VAR它将成功!
nik_m
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.