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。
export DJANGO_SETTINGS_MODULE=myFirstDjangoSite.settings
set DJANGO_SETTINGS_MODULE=myFirstDjangoSite.settings
3. Django项目内部的默认设置文件
$MY_PROJECT/$MY_PROJECT/settings.py
4. 启动Django应用时的设置参数
$PYTHON_HOME/site-packages/django/bin/django-admin runserver --settings=myFirstDjangoSite.settings
%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/