Все еще получаю KeyError: 'SECRET_KEY' в моем Django проекте с установкой переменных среды - PullRequest
0 голосов
/ 27 мая 2020

Я создал переменные среды для своего проекта django в моем файле виртуальной среды pipenv bin / activate (linux) или scripts \ activate (windows), я внес необходимые изменения в файл настроек, а также вышел и повторно активация виртуальной среды, но я все еще получаю ошибку ключа (я работаю на машине windows)

переменные в settings.py

SECRET_KEY = os.environ['SECRET_KEY']

EMAIL_HOST_PASSWORD = os.environ['EMAIL_HOST_PASSWORD']

переменные evnvironment в virtualenv \ scripts \ activate файл

export SECRET_KEY= "mysecretkey"

export EMAIL_HOST_PASSWORD= "mypassword"

ошибка

File "C:\Users\Dell\.virtualenvs\team-272-SMES-Server-dSgdZ4Ig\lib\os.py", line 673, in __getitem__
    raise KeyError(key) from None
KeyError: 'SECRET_KEY'

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Убедитесь, что у вас есть «SECRET_KEY» в вашей os.environ.

Используйте этот код, чтобы проверить, есть ли там «SECRET_KEY»:

import os 
import pprint 

# Get the list of user's 
# environment variables 
env_var = os.environ 

# Print the list of user's 
# environment variables 
print("User's Environment variable:") 
pprint.pprint(dict(env_var), width = 1) 

Вероятно, вам не хватает «SECRET_KEY» в списке переменных среды. Вы можете добавить переменную:

# importing os module  
import os 

# Add a new environment variable  
os.environ['GeeksForGeeks'] = 'www.geeksforgeeks.org'

источник

0 голосов
/ 30 мая 2020

На сервере Windows я рекомендую создать файл JSON (или YAML) со всеми секретами вашей базы данных и приложений. Я лично предпочитаю JSON, поэтому пример одного из них:

{
"SECRET_KEY": "...",
"MYSQL_DBUSER": "jon"
"MYSQL_PW": "..."
...
}

Затем в свой settings.py вы должны добавить что-то вроде

import json

with open("config.json") as config:
    config = json.load(config)

Затем просто загрузить секреты вашего проекта , проиндексируйте их по имени переменной, например

SECRET_KEY = config['SECRET_KEY']
...