getting raise KeyError(key) KeyError: 'SECRET_KEY' with django on production settings

getting raise KeyError(key) KeyError: 'SECRET_KEY' with django on production settings

我有 2 个用于生产和开发的单独设置文件和一个通用 base.py 设置文件
base.py

SECRET_KEY = r"!@#$%^&123456"

prod.py

from .base import *
SECRET_KEY = os.environ['SECRET_KEY']

manage.py

#!/usr/bin/env python
import os

import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings.dev")

from django.core.management import execute_from_command_line

execute_from_command_line(sys.argv)

当我在终端输入时:

python manage.py shell --settings=entri.settings.prod

我收到错误:

raise KeyError(key)
KeyError: 'SECRET_KEY'

帮帮我,我是 django 的新手 python

我认为您是在本地尝试此操作,并且您的环境中没有 SECRET_KEY 设置。

使用

设置
export SECRET_KEY="somesecretvalue"

然后 运行 python manage.py shell --settings=entri.settings.prod 应该可以正常工作。

我使用 os.getenv('SECRET_KEY'),而不是 os.environ['SECRET_KEY']

print os.getenv('SECRET_KEY')    #returns None if KEY doesn't exist
print os.getenv('SECRET_KEY', 0) #will return 0 if KEY doesn't exist 

我的python版本是2.7.12

在 Django 中尝试 secure/hide 我的 secret_key 时,我的问题甚至是在 windows 上使用 set 命令设置 secret_key 之后,我仍然得到 'Key must not be empty'错误。我通过删除命令中赋值运算符前后的所有空格来解决这个问题。在你的命令中,写

设置SECRET_KEY="kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"

而不是

设置SECRET_KEY = "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"