我正在开发一个 Django 项目,其中在文件SECRET_KEY
中定义了诸如此类的设置,并使用python-dotenv设置环境变量,如下所示:.env
manage.py
from dotenv import load_dotenv, find_dotenv
if __name__ == "__main__":
load_dotenv(find_dotenv())
# usual manage.py code
然后settings.py
简单地从环境变量中定义模块级设置,例如,
SECRET_KEY = os.environ['SECRET_KEY']
我现在正在切换到pytest-django进行单元测试。然而,问题是,如果不python manage.py
先运行,环境变量就不会设置,所以我最终得到
E KeyError: 'SECRET_KEY'
我现在考虑解决这个问题的方法是定义一个自定义操作来注册manage.py
以运行pytest
(遵循https://docs.djangoproject.com/en/2.0/howto/custom-management-commands/)。不过,这似乎有点像用大锤敲碎坚果。有什么更优雅的方法来解决这个问题的建议吗?