【问题标题】:How to manage environment variables in one settings file for dev and prod in Django如何在 Django 中的 dev 和 prod 的一个设置文件中管理环境变量
【发布时间】:2023-03-02 21:45:01
【问题描述】:

我正在尝试将本地和 prod 设置文件合并为一个。

local.py

...
SECRET_KEY = os.environ['DJANGO_SECRET_KEY']
DEBUG = os.environ['DEBUG']

prod.py

...
AWS_ACCESS_KEY_ID = os.environ['AWS_ACCESS_KEY_ID']
AWS_SECRET_ACCESS_KEY = os.environ['AWS_SECRET_ACCESS_KEY']

由于我不在本地使用 AWS 环境变量,我希望编译器不要检查这些环境变量,还有,有没有办法检查环境是 dev 还是 prod,以便我可以执行以下操作?

settings.py

if env == local:
  DEBUG = True
else:
  DEBUG = False

【问题讨论】:

    标签: django


    【解决方案1】:

    我认为你可以使用os.environ.get('AWS_ACCESS_KEY_ID', <default>) - 这样 Python 不会抛出 KeyError 但我仍然觉得你应该保持单独的本地和生产设置,并且只在本地指向本地版本。

    这也回答了第二个问题,因为在local.py中可以设置

    DEBUG = True
    

    你就不需要了

    if env == local:
      DEBUG = True
    else:
      DEBUG = False
    

    此外,您可以设置 base.py 设置,该设置将具有在 prod.py 和 local.py 中重复的设置。如果您愿意,可以查看https://github.com/pydanny/cookiecutter-django - 它设置了《Two Scoops of Django》一书中推荐的项目结构。

    【讨论】:

      猜你喜欢
      • 2020-11-30
      • 2019-04-15
      • 1970-01-01
      • 2021-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-01
      • 1970-01-01
      相关资源
      最近更新 更多