使用环境变量配置Django。

django-envconfig的Python项目详细描述


django环境配置

TestPythonDjangoLicense

使用环境变量(envvars)配置Django。settings.py可选。在

入门

安装

python -m pip install django-envconfig

用法

编辑Django生成的manage.pyasgi.py和{}文件 startproject命令并修改以下行:

^{pr2}$

最小配置

下面的envvar是必需的(其中project_name是最初的模块 生成者:startproject):

exportDJANGO_PROJECT=project_name

还需要以下环境变量(如果settings.py被删除):

  • ALLOWED_HOSTS(除非设置DEBUG=on
  • DATABASESPGDATABASE

环境可以存储在.env文件中。此文件可以存储在 根目录(在manage.py旁边)或路径上的任何位置(例如virtualenv 目录)。在

工作原理

任何Django setting都可以 配置为环境变量。在

  • 要设置布尔值:true|yes|on|1false|no|off|0(不区分大小写)
  • 要设置Nonenone|null(不区分大小写)
  • 简单的字符串列表可以用逗号分隔存储,例如export ALLOWED_HOSTS=127.0.0.1,localhost
  • dict和复杂列表应该存储为JSON

使用以下优先级加载设置(最高优先级):

  1. 环境变量。在
  2. 项目settings.py中定义的设置(如果存在)。注:任何 自定义设置应在此处使用其默认值进行定义。在
  3. 生成的将由生成的settings.py文件定义的设置 startproject。这应该可以消除大多数人对(2)中的文件的需要 项目。注意事项:
    • DEBUG的默认值已更改为False。在
    • 生成一个SECRET_KEY,但不会在会话之间持续存在(例如。 如果重新启动服务器/进程管理器)。检查 Django documentation 要查看是否需要将persistent SECRET_KEY设置为 环境变量。在

如果使用的是PostgreSQL后端,则不需要设置DATABASES。你呢 可以简单地设置PostgreSQL环境变量-最小值是PGDATABASEPostgreSQL docs 关于环境变量的完整列表。这样,当 打电话 PostgreSQL command line utilities 例如psql或{}。在

为什么

  • 将配置与代码分开。看到了吗 The Twelve Factor App。在
  • 使用无服务器服务,如AWS Lambda和Heroku。在
  • 避免模板设置文件和保持自动生成 settings.pyDjango版本之间的最新版本。在
  • 使用.env文件可以方便地在环境/部署之间切换 (例如开发、测试和生产)。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Mac OS无法运行。Jar文件   Eclipse中java不可引发的POM错误   java指定用于bean的验证组   并发性如何确保Java方法中2条语句的顺序和完整执行   java为什么在抽象类中需要构造函数?   java使用链接打开我的Android应用程序   java允许在用户使用代码时选择一个或另一个名称   在Java中插入日期以访问数据库   将GWT RequestFactory与Grails一起使用时出现java类加载器问题   java JPA开始事务瓶颈   使用com从java中的json数组解析json对象。fasterxml。杰克逊。数据绑定。JsonNode;   如何正确处理最大/最小int值   java动态报表导出pdf类未找到异常错误   尽量不重复我自己(安卓/java)   java为什么Eclipse抱怨不安全的类型转换?   Java重写列表的键处理   java如何知道BigDecimal是否可以精确地转换为float或double?