如何在 os.environ['SECRET_KEY'] 中使用 django_crontab?

问题描述

我正在使用 django_crontab 库,它运行良好,直到我决定将我的 SECRET_KEY 导出到环境变量。总结我在 bash 中所做的事情(在我的 venv 中):

export SECRET_KEY='some_secret_key_from_settings'

在 settings.py 中:

SECRET_KEY = os.environ['SECRET_KEY']

另外,我使用 venv,所以我也在设置中添加了这个:

CRONTAB_PYTHON_EXECUTABLE = '/path_to_my_venv/venv/bin/python3'

这是我的错误

SECRET_KEY = os.environ['SECRET_KEY']
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py",line 681,in __getitem__
    raise KeyError(key) from None
KeyError: 'SECRET_KEY'

我找到的最接近的解决方案是:https://github.com/kraiz/django-crontab/issues/74

但是,我在这方面不太有经验,不明白我应该做什么。我将非常感谢我可以采取的明确步骤的答案

解决方法

如果您不是必须使用环境变量,您可以使用非常简单易用的 python-decouple 包。请参阅 pypi 上的 this

然后,你可以这样读SECRET_KEY:(在settings.py中)

    ...
    from decouple import config
    ...

    SECRET_KEY = config('SECRET_KEY')

应该可以解决您的问题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...