Запуск приложения Django из клонированного репозитория с переменными окружения
Я пытаюсь запустить приложение Django из клонированного репозитория и заметил, что оно имеет переменные окружения, хранящиеся в файле settings.py (а именно: SECRET_KEY и DEBUG).
При запуске приложения оно выдает мне следующую ошибку:
django.core.exceptions.ImproperlyConfigured: Set the SECRET_KEY environment variable
Я понимаю, что Django не может работать без него, но у меня есть следующие сомнения относительно этой проблемы.
Должен ли я предоставить свой собственный SECRET_KEY и объявить его в файле .env.
Также, необходимо ли иметь тот же SECRET_KEY, что и в оригинальном файле проекта?
Во-первых, добро пожаловать на SO!
Во-вторых, лучше всего хранить секретный ключ и другую конфиденциальную информацию (пароль базы данных и так далее) в переменных окружения. Однако, если вы просто клонируете репозиторий для отработки на локальной машине, вы можете использовать клонированный репозиторий, пока не подумаете о развертывании и контроле версий.
На мой взгляд, один из способов сделать это довольно просто - django-environ. Проверьте его: https://django-environ.readthedocs.io/en/latest/
Что касается вашего вопроса о секретном ключе, есть причина, по которой он называется секретным ключом: держите его в секрете! При разработке можно временно использовать клонированный ключ , но всегда убедитесь, что ключ остается секретным для производства. Если вы используете контроль версий (например, Git), файл .env не должен быть включен во избежание инцидентов
Должен ли я предоставить свой собственный SECRET_KEY и объявить его в .env файле.
Да, вы можете либо установить необходимую переменную окружения в оболочке, в которой вы запускаете сервер django, либо поместить ее в .env файл.
Кроме того, необходимо ли иметь тот же SECRET_KEY, что и в оригинальном файле проекта?
Нет, вам не нужно то же значение, что и в исходном проекте. SECRET_KEY используется для соли. SECRET_KEY используется для криптографической подписи в сессиях, токенов сброса пароля и т.д. Более подробную информацию можно найти в документации . Единственное ограничение заключается в том, что вы должны поддерживать один и тот же SECRET_KEY для экземпляра приложения django. В противном случае сессии и другие подписанные данные будут нарушены.
python-decouple является альтернативой для django-environ , в случае, если у вас возникнет ошибка при использовании django-environ.
ШАГ 1 :- pip install python-decouple
ШАГ 2 :- открыть файл settings.py
ШАГ 3 :- Импорт объекта конфигурации:
from decouple import config
ШАГ 4 :- Получение параметров конфигурации:
SECRET_KEY = config('SECRET_KEY')
ШАГ 5 :- создайте текстовый файл .env в корневом каталоге вашего репозитория в виде:
SECRET_KEY=YOUR_SECRET_KEY
Примечание :- Помните, в файле .env не ставьте пробелы .
Посетите :- https://pypi.org/project/python-decouple/ для более подробного объяснения & документации.