第五章 Settings 和 Requirements
避免本地未受控的 settings 文件
- 代码维护困难
- 多人开发时,勿提交local settings 文件,造成配置混乱。
使用多分配置文件
settings/
__init__.py
base.py
local.py
staging.py
test.py
production.py
使用:
方法一:
python manage.py shell --settings=twoscoops.settings.local
python manage.py runserver --settings=twoscoops.settings.local
方法二:
通过设置DJANGO_SETTINGS_MODULE
和 PYTHONPATH
环境变量来代替 --settings
参数
方法三:
设置 virtualenv 的postactivate 脚本,在启动环境时,配置DJANGO_SETTINGS_MODULE
和 PYTHONPATH
环境变量。
多开发配置文件
多人开发时,可提交自己的开发配置文件。
settings/
__init__.py
base.py
dev_audreyr.py
dev_pydanny.py
local.py
将秘钥等安全性高的变量放到环境变量中
注意:
Apache 有自己的环境变量系统,需要注意区分。
设置
$ export SOME_SECRET_KEY=1c3-cr3am-15-yummy
$ export AUDREY_FREEZER_KEY=y34h-r1ght-d0nt-t0uch-my-1c3-cr34m
获取
>>> import os
>>> os.environ["SOME_SECRET_KEY"]
"1c3-cr3am-15-yummy"
配置文件使用:
# Top of settings/production.py
import os
SOME_SECRET_KEY = os.environ["SOME_SECRET_KEY"]