2015-01-22 32 views
7

Ben ettik ayarlar dosyasını üretim ve geliştirme ve ortak bir base.py için 2 ayrı ayarlar dosyaları
base.pyKeyError (anahtar) KeyError yükseltmek alma: Üretim ayarlarına django ile 'secret_key'

SECRET_KEY = r"[email protected]#$%^&123456" 

prod.py

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

manage.py

Ben terminalde bu girdiğinizde
#!/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 

alıyorum hatası:

raise KeyError(key) 
KeyError: 'SECRET_KEY' 

Yardım edin, django yeniyim ve

+1

olduğu yerine os.environ [ 'secret_key'] arasında, ('secret_key') os.getenv kullanmak Çevre değişkeni? –

+0

Bunu yerel olarak denediğinizi düşünüyorum ve ortamınızda SECRET_KEY ayarına sahip değilsiniz. Export SECRET_KEY = "somevalue" 'yi kullanarak ayarlayın ve sonra bu iyi çalışmalıdır. –

+0

@mu 無 Evet, bunu yerel olarak çalıştırıyorum. "SECRET_KEY" i ** base.py ** olarak ayarlıyorum. Bu dosya ** prod.py ** 'ye içe aktarıldı. Bu yeterli değil mi? Neyi kaçırıyorum? – sidx

cevap

6

bence piton Bunu yerel olarak deniyorsunuz ve ortamınızda SECRET_KEY kurulumuna sahip değilsiniz. o python manage.py shell --settings=entri.settings.prod çalıştıran sonra

export SECRET_KEY="somesecretvalue" 

ve kullanma

Seti iyi çalışması gerekir.

0

Ben

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 

benim piton versiyonu Peki nereden secret_key ayarlarken 2.7.12

İlgili konular