运行 来自具有环境变量的克隆存储库的 Django 应用程序

Running a Django application from a cloned repository that has environment variables

我正在尝试从克隆的存储库中 运行 Django 应用程序,我注意到它的环境变量存储在 settings.py 文件中(即:SECRET_KEYDEBUG).

当 运行 应用程序时,出现以下错误:

django.core.exceptions.ImproperlyConfigured: Set the SECRET_KEY environment variable

我知道 Django 不能没有它 运行 但我对这个问题有以下疑问。

我是否应该提供自己的 SECRET_KEY 并在 .env 文件中声明它。

另外,是否需要和原项目文件一样SECRET_KEY

首先,欢迎来到 SO!

其次,最好将密钥和其他敏感信息(数据库密码等)存储在环境变量中。但是,如果您只是克隆一个存储库以在本地计算机上练习,则可以使用克隆的存储库,直到您考虑部署和版本控制。

在我看来,您可以很轻松地做到这一点的一种方法是 django-environ。检查一下:https://django-environ.readthedocs.io/en/latest/

关于您关于密钥的问题,之所以称为密钥是有原因的:保密!在开发中,暂时使用克隆的 有点好,但始终确保 为生产保密。如果您使用版本控制(例如 Git),则不应包含 .env 文件以避免发生意外。

Should I provide my own SECRET_KEY and declare it inside a .env file.

是的,您可以在 运行 django 服务器的 shell 中设置所需的环境变量,或者将其放入 .env 文件中。

Also, is it necessary to have the same SECRET_KEY as the original project file did?

不,您不需要与原始项目相同的值。 SECRET_KEY 用来加盐。 SECRET_KEY 用于会话中的加密签名、密码重置令牌等。有关更多详细信息,请参阅 the documentation。唯一的限制是您必须为 django 应用程序的实例维护相同的 SECRET_KEY。否则会话和其他签名数据将失效。

python-decoupledjango-environ 的替代方法,以防万一您使用 django-environ.

第 1 步:- pip install python-decouple

第 2 步:- 打开 settings.py 文件

第 3 步:- 导入配置对象:

from decouple import config

第 4 步:- 检索配置参数:

SECRET_KEY = config('SECRET_KEY')

第 5 步:- 在存储库的根目录中创建一个 .env 文本文件,格式为:

SECRET_KEY=YOUR_SECRET_KEY

Note :- Remember , in .env file don't give spaces .

访问:- https://pypi.org/project/python-decouple/ 获取更详细的解释和文档。