繁体   English   中英

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

[英]Issue with Hiding Django SECRET_KEY Using environment variables

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

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

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

原来我必须像这样向 os.environ.get 添加一个默认的 state :

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 变量,以确保它可用于应用程序。

问候,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM