Запуск приложения 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/ для более подробного объяснения & документации.

Вернуться на верх