【问题标题】:Is there any difference between django.conf.settings and import settings?django.conf.settings 和导入设置有什么区别吗?
【发布时间】:2012-02-05 12:51:03
【问题描述】:

Django 应用程序中以下导入语句的基本区别是什么?

import settings

from django.conf import settings

【问题讨论】:

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

标签: python django django-settings


【解决方案1】:
import settings

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

from django.conf import settings

将从 django.conf 包(Django 提供的文件)导入设置 objectThis is important,因为

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

更新:如果您想定义一些自己的设置,请参阅this part of the documentation

【讨论】:

  • 仅供参考,global_settings 是 django.conf 包中的另一个模块。正如文档所说,不要使用它。
  • 请注意,如果您还希望能够在单元测试期间覆盖设置,则使用 from django.conf import settings 至关重要。
  • 另请注意,所有设置名称应为大写。也就是说,如果您的设置中有一个 var my_var,那么这将失败:from django.conf import settings...settings.my_var。但如果你把它命名为MY_VAR,它就会成功!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-08
  • 2018-06-23
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多