试图隐藏 Django 密钥,但在 PythonAnywhere 中部署时出错

Trying to hide django secret key, but getting error when deploying in PythonAnywhere

我正在尝试部署一个 Django 项目。我将密钥隐藏在一个名为 .env 的文件中并将其添加到 .gitignore,所以我有 django 的秘密密钥仅在本地,而不在 git 存储库中。但是当我尝试在 PythonAnywhere 中部署项目时,出现错误,因为存储库中没有密钥(没有服务器可以从中读取密钥的文件)。

所以我知道硬编码密钥不好,但是我该怎么做才能获得用于部署的密钥?

我不应该在 git 存储库中有任何密钥,对吗?

I shouldn't have any secret key in the git repository, right?

没错。

So I understand that it's not good to hard code the key, but how would I do to get a secret key for deployment?

密钥可以存储为环境变量或与项目一起部署的文件中。这两个选项都必须通过您的主机来完成。以下是与您的项目一起部署的文件的 Pythonanywhere 建议:https://www.pythonanywhere.com/forums/topic/14207/

您可以在 PythonAnywhere 上有一个单独的 .env 文件来存储单独的密钥。 .env 文件也是存储 PythonAnywhere 数据库密码等的好地方。 从安全角度来看,在本地和 PythonAnywhere 上拥有不同值的不同文件是有意义的。不要忘记更新您的 PythonAnywhere。git如果您从 PA 上传到您的 git 存储库,请忽略文件以包含它!

您可以通过 PA 文件部分在您的项目目录中创建一个新的 .env 文件,并使用您本地的 .env 文件作为基础,通过以下任一方式生成一个新的键值:

$ python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"

或使用 https://djecrety.ir/

等网络工具