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)

 

posted @ 2020-06-05 23:51  人不知所  阅读(235)  评论(0)    收藏  举报