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

tze*_*man 65 python django django-settings

我正在阅读大多数人所做的事情,from django.conf import settings但我不认为只是import settings在django项目文件中做的差别.有人可以解释这个区别吗?

jul*_*sar 81

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

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

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

你也可以在django docs中找到它.

希望这可以帮助.

  • `import settings`将导入在`sys.path`中找到的名为`settings.py`的第一个python模块.这可能不是"站点定义的设置文件",它在环境变量"DJANGO_SETTINGS_MODULE"中查找,可以是任何python包或模块. (5认同)

man*_*tus 16

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

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

  • s /第一个更好/第一个是唯一正确的/ (3认同)