使用环境变量配置Django。
django-envconfig的Python项目详细描述
django环境配置
使用环境变量(envvars)配置Django。settings.py
可选。在
入门
安装
python -m pip install django-envconfig
用法
编辑Django生成的manage.py
、asgi.py
和{startproject
命令并修改以下行:
最小配置
下面的envvar是必需的(其中project_name
是最初的模块
生成者:startproject
):
exportDJANGO_PROJECT=project_name
还需要以下环境变量(如果settings.py
被删除):
ALLOWED_HOSTS
(除非设置DEBUG=on
)DATABASES
或PGDATABASE
环境可以存储在.env
文件中。此文件可以存储在
根目录(在manage.py
旁边)或路径上的任何位置(例如virtualenv
目录)。在
工作原理
任何Django setting都可以 配置为环境变量。在
- 要设置布尔值:
true|yes|on|1
和false|no|off|0
(不区分大小写) - 要设置
None
:none|null
(不区分大小写) - 简单的字符串列表可以用逗号分隔存储,例如
export ALLOWED_HOSTS=127.0.0.1,localhost
- dict和复杂列表应该存储为JSON
使用以下优先级加载设置(最高优先级):
- 环境变量。在
- 项目
settings.py
中定义的设置(如果存在)。注:任何 自定义设置应在此处使用其默认值进行定义。在 - 生成的将由生成的
settings.py
文件定义的设置startproject
。这应该可以消除大多数人对(2)中的文件的需要 项目。注意事项:DEBUG
的默认值已更改为False
。在- 生成一个
SECRET_KEY
,但不会在会话之间持续存在(例如。 如果重新启动服务器/进程管理器)。检查 Django documentation 要查看是否需要将persistentSECRET_KEY
设置为 环境变量。在
如果使用的是PostgreSQL后端,则不需要设置DATABASES
。你呢
可以简单地设置PostgreSQL环境变量-最小值是PGDATABASE
见
PostgreSQL docs
关于环境变量的完整列表。这样,当
打电话
PostgreSQL command line utilities
例如psql
或{
为什么
- 将配置与代码分开。看到了吗 The Twelve Factor App。在
- 使用无服务器服务,如AWS Lambda和Heroku。在
- 避免模板设置文件和保持自动生成
settings.py
Django版本之间的最新版本。在 - 使用.env文件可以方便地在环境/部署之间切换 (例如开发、测试和生产)。在
- 项目
标签: