在 Django App 中存储生产环境变量的推荐方式

Recommended Way to Store Production Environment Variables in Django App

我有一个 Django 应用程序,它使用环境变量来处理数据库密码、django_secret_key、api 密钥等。

我想在生产中使用 env 变量,但希望将这些值的值保留在 git 之外。最好的方法是:

  1. 存储敏感的生产环境变量
  2. 将变量加载到生产环境中

提前致谢。

您的问题可能非常基于意见...

  • 例如,您可以从不是 settings.py.
  • 的配置文件中读取内容
  • 您可以使用 local-devel.py 拆分设置,这会覆盖 settings.py
  • 中的内容

例如,请参见此处:https://code.djangoproject.com/wiki/SplitSettings or this so question: How to manage local vs production settings in Django?(我个人觉得它很丑......)。

我使用 salt-stack 并将所有敏感信息放在支柱中,但这对单个开发人员来说可能有点矫枉过正。

您可以使用一些状态来设置环境变量,以便您的 wsgi 应用可以看到这些变量。

您可以在您的服务器上拥有您的文件(配置文件)。 您可以在 repo 中有一个默认配置文件以供参考,但是您可以 "hide" 使用具有生产值的配置文件:

https://git-scm.com/docs/git-update-index

--assume-unchanged

git update-index --assume-unchanged <path>

如果您需要打印出标有 --assume-unchanged 标志的文件列表:

git ls-files -v|grep '^h'