Django 最佳实践-读书笔记 - 第五章 Settings 和 Requirements
# 第五章 Settings 和 Requirements
# 避免本地未受控的 settings 文件
- 代码维护困难
- 多人开发时,勿提交local settings 文件,造成配置混乱。
# 使用多分配置文件
settings/
__init__.py
base.py
local.py
staging.py
test.py
production.py
1
2
3
4
5
6
7
2
3
4
5
6
7
# 使用:
方法一:
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
1
2
3
4
5
6
2
3
4
5
6
# 将秘钥等安全性高的变量放到环境变量中
注意:
Apache 有自己的环境变量系统,需要注意区分。
# 设置
$ export SOME_SECRET_KEY=1c3-cr3am-15-yummy
$ export AUDREY_FREEZER_KEY=y34h-r1ght-d0nt-t0uch-my-1c3-cr34m
1
2
2
# 获取
>>> import os
>>> os.environ["SOME_SECRET_KEY"]
"1c3-cr3am-15-yummy"
1
2
3
4
2
3
4
配置文件使用:
# Top of settings/production.py
import os
SOME_SECRET_KEY = os.environ["SOME_SECRET_KEY"]
1
2
3
2
3
# 在settings配置文件中不要使用绝对路径
# Requirements 管理思路和 settings一致
上次更新: 2023/03/28, 16:27:19