获取提升KeyError(键)KeyError:' SECRET_KEY'与django在生产设置上

时间:2015-01-22 13:49:45

标签: python django keyerror

我为生产和开发提供了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的新手

2 个答案:

答案 0 :(得分:7)

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

使用

设置
export SECRET_KEY="somesecretvalue"

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

答案 1 :(得分:1)

我使用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