Django Settings
1. 指定settings
django 通过环境变量 DJANGO_SETTINGS_DMOODULE 来导入配置文件
相当于
import [DJANGO_SETTINGS_DMOODULE]
mananger.py中会自动设置这个环境变量,配置当前项目的配置文件
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings.%s" % profile)
使用django-amdin命令可以直接设置
django-admin runserver --settings=mysite.settings
在服务器上,需要配置mod_wsgi来指定
profile = os.environ.get('MYSITE_PROFILE', 'develop') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings.%s" % profile)
2. 全局默认配置
django默认有一个全局配置在django/conf/global_settings.py.
django会先加载全局配置文件 ,再加载自己定义的配置文件
可以通过 下面的命令查看自己定义的配置和全局默认的配置有什么区别
python manage.py diffsettings
3. 代码中访问配置
在代码里使用设置,不应该导入自己的配置文件,应该用下面的方法,
导入的settings是一个对象,而不是一个模块,这样可以让代码和配置分离
在程序运行中不应该修改配置文件,应该只有在配置文件中才可以给配置的变量赋值
from django.conf import settings if settings.DEBUG: # Do something
4 手动生成配置
可以通过configure,传键-值对来生成配置
from django.conf import settings from myapp import myapp_defaults settings.configure(default_settings=myapp_defaults, DEBUG=True)
手动生成和用配置文件 必须 二选一,不可以同时存在
也不可以一个都没有
可以这样检测一下, 配置文件是否已经设置了
from django.conf import settings if not settings.configured: settings.configure(myapp_defaults, DEBUG=True)

浙公网安备 33010602011771号