Django应用的设置对象django.conf.settings详解

Django应用的各种配置参数往往位于一个设置文件中。

与Java应用不同,设置文件往往是xml或properties文件,与Java类文件完全不同。但是,在Django应用中的设置文件,等同于一个Python模块,遵守Python的语法规范。

Django的设置文件,事实上就是在配置Django的django.conf.settings对象。

对于一个Django应用,如果未进行任何设置,则在执行命令时,会提出如下提示:

Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).

 

下面以优先级从低到高介绍Django应用中的设置方法。

1. Django默认设置文件

$PYTHON_HOME/site-packages/django/conf/global_settings.py

2. 操作系统的环境变量DJANGO_SETTINGS_MODULE给出配置文件的路径

首先给出myFirstDjangoSite项目中主模块的设置文件myFirstDjangoSite.settings.py,如下:

ALLOWED_HOSTS = ['www.mydomain.com']
DEBUG = False
DEFAULT_FROM_EMAIL = '[email protected]'

设置文件的内容总体可以分为Core, Auth, Message, Session, Site, Static Files等六个部分,详情请参考文末的链接2。

  • Linux系统

export DJANGO_SETTINGS_MODULE=myFirstDjangoSite.settings

  • Windows系统

set DJANGO_SETTINGS_MODULE=myFirstDjangoSite.settings

3. Django项目内部的默认设置文件

$MY_PROJECT/$MY_PROJECT/settings.py

4. 启动Django应用时的设置参数

  • Linux系统

$PYTHON_HOME/site-packages/django/bin/django-admin runserver --settings=myFirstDjangoSite.settings

  • Windows系统

%PYTHON_HOME%/Scripts/django-admin runserver --settings=myFirstDjangoSite.settings

5. 在Python应用的代码中,运行时设置参数

from django.conf import settings
settings.configure(default_settings=myapp_defaults, DEBUG=True) #recommended
settings.DEBUG = True	#not recommended

最后,查看当前的配置
python manage.py diffsettings

参考链接:

 

https://docs.djangoproject.com/en/1.11/topics/settings/
https://docs.djangoproject.com/en/1.11/ref/settings/

你可能感兴趣的:(Python,Django)