使用环境变量隐藏Django SECRET_KEY的问题



我正在虚拟环境中的AWS EC2 Ubuntu实例上运行我的程序和Django项目。django项目在apache服务器上运行。出于这个问题的目的,我会说我的密钥是"AAAA"。我有一个环境变量集("SECRET_KEY"(。它是正确设置的,当我放:

import os print(os.environ['SECRET_KEY']) 在python外壳中,它打印出正确的密钥AAAA。因此,我知道python能够访问适当的环境变量。在settings.py中,当SECRET_KEY='AAAA'时,项目工作,并且一切都正常执行。但是,当我将其更改为:SECRET_KEY=os.environ['SECRET_KEY']时,服务器不工作(500内部服务器错误(。

一切似乎都应该奏效。对于我在这里遗漏的内容,有什么建议或想法吗?

原来我不得不向os.environ.get添加一个默认状态,比如:

SECRET_KEY = os.environ.get('SECRET_KEY', 'mmglfamx3n927*93$ks#r)h%*a(@))vb7*=2q$&z(=6@q&*ghj')

我像这样使用SECRET_KEY = os.getenv('SECRET_KEY')来获取项目中的环境变量。

您可以做的另一件事是在终端服务器中打印env变量,以确保它可用于应用程序。

问候,

最新更新