【问题标题】:Issue with Hiding Django SECRET_KEY Using environment variables使用环境变量隐藏 Django SECRET_KEY 的问题
【发布时间】:2020-07-17 03:51:21
【问题描述】:

我正在虚拟环境中的 AWS EC2 Ubuntu 实例上运行我的程序和 Django 项目。 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 内部服务器错误)。

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

【问题讨论】:

  • 您是否使用与 django 进程完全相同的环境变量来运行您的 shell?你在哪里设置环境变量?
  • 我相信是的,我跑了一条蟒蛇。与打印环境变量结果的测试在同一目录中的脚本,这是正确的结果

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    问候,

    【讨论】:

    • 我这样做了,它在终端中可用。我尝试了获取密钥的方法,结果相似
    • 你好,你做了哪一个?
    猜你喜欢
    • 2021-09-07
    • 1970-01-01
    • 2020-11-18
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 2021-06-10
    • 2018-04-30
    相关资源
    最近更新 更多