簡體   English   中英

在生產設置上使用 django 獲取 raise KeyError(key) KeyError: 'SECRET_KEY'

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

我有 2 個用於生產和開發的單獨設置文件和一個通用 base.py 設置文件
基礎.py

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

產品.py

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

管理.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 中嘗試保護/隱藏我的 secret_key 時,我的問題是即使在 windows 上使用 set 命令設置 secret_key 后,我仍然收到“密鑰不能為空”錯誤。 我通過刪除命令中賦值運算符前后的所有空格來解決這個問題。 在你的cmd中,寫

設置 SECRET_KEY="kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"

代替

設置 SECRET_KEY = "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM