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

时间:2020-04-05 04:09:00

标签: python django python-3.x ubuntu amazon-ec2

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

import os print(os.environ['SECRET_KEY']) 在python shell中,它会打印正确的密钥AAAA。因此,我知道python能够访问适当的环境变量。在settings.py中,当SECRET_KEY='AAAA'时,项目可以正常运行,并且一切正常执行。但是,当我将其更改为:SECRET_KEY=os.environ['SECRET_KEY']时,服务器无法正常工作(500 Internal Server Error)。

一切似乎都应该起作用。关于我在这里错过的任何建议或想法吗?

2 个答案:

答案 0 :(得分:1)

结果是我必须像这样向os.environ.get添加默认状态:

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

答案 1 :(得分:0)

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

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

此致