我正在尝试将本地和产品设置文件合并为一个。
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 env变量,所以我希望编译器不要检查那些env变量,而且还有一种方法可以检查环境是dev还是prod,以便我可以执行以下操作?
settings.py
if env == local:
DEBUG = True
else:
DEBUG = False
答案 0 :(得分:0)
我认为您可以使用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-它建立了《 Django的两个瓢虫》一书中建议的项目结构。