web-dev-qa-db-ja.com

昇給KeyError(key)KeyError: 'SECRET_KEY' with Django on productsettings

本番環境と開発用の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に不慣れです

9
sidx

これをローカルで試していると思いますが、環境にSECRET_KEYが設定されていません。

を使用して設定します

export SECRET_KEY="somesecretvalue"

その後、python manage.py Shell --settings=entri.settings.prodを実行すると正常に動作するはずです。

9
mu 無

Os.environ ['SECRET_KEY']の代わりにos.getenv( '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です

1
Chandru