django配置DJANGO_SETTINGS_MODULE

长孙正卿
2023-12-01

DJANGO_SETTINGS_MODULE

使用Django时要通知Django当前使用的是哪个配置文件。可以改变环境变量 DJANGO_SETTINGS_MODULE 实现这一点。

当我们使用manage.py运行起本地的web服务器时,为了让Django知道使用哪个配置文件,就指定了DJANGO_SETTINGS_MODULE的环境变量的路径,我们看下manage.py

import os
import sys

if __name__ == "__main__":
	# test1是我的主应用名字
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "test1.settings")
    try:
        from django.core.management import execute_from_command_line
    except ImportError:
        # The above import may fail for some other reason. Ensure that the
        # issue is really that Django is missing to avoid masking other
        # exceptions on Python 2.
        try:
            import django
        except ImportError:
            raise ImportError(
                "Couldn't import Django. Are you sure it's installed and "
                "available on your PYTHONPATH environment variable? Did you "
                "forget to activate a virtual environment?"
            )
        raise
    execute_from_command_line(sys.argv)

Django的设置和配置。
值将从DJANGO_SETTINGS_MODULE环境指定的模块中读取
变量,然后从django.conf.global_settings(此为django的默认设置)

为什么不能用import settings
import settings will import the first python module named settings.py found in sys.path, usually (in default django setups). It allows access only to your site defined settings file, which overwrites django default settings (django.conf.global_settings).So, if you try to access a valid django setting not specified in your settings file you will get an error.django.conf.settings is not a file but a class making an abstraction of the concepts, default settings and your site-specific settings. Django also does other checks when you use from django.conf import settings.from django.conf import settings 是更好的选择

import settings将导入sys中第一个名为settings.py的python模块。通常(在默认的django设置中)。它只允许访问站点定义的设置文件,该文件覆盖django的默认设置(django.conf.global_settings)。
因此,如果尝试访问未在设置文件中指定的有效django设置,将会得到一个错误。
django.conf.settings 不是一个文件,而是一个抽象概念、默认设置和站点特定设置的类。当您使用from django.conf import settings,Django还会执行其他检查。
from django.conf import settings是更好的选择

Django settings详解

1.基础

DJANGO_SETTING_MODULE环境变量:让settings模块被包含到python可以找到的目录下,开发情况下不需要,我们通常会在当前文件夹运行,python可以搜索到。如果需要运行在其他服务器上,就必须指定DJANGO_SETTINGS_MODULE变量。

2.默认设定

一个django的settings文件不需要我们手动去设置所有项目,因为系统已经默认设置好了。我们只需要修改我们使用的设

定就好了。默认的设置在django/conf/global_settings.py文件中。django在编译时,先载入global_settings.py中的配置,然后加载指定的settings文件,重写改变的设定。

 类似资料: