Dot Env - NurOrNuLL/ESDP-AP-5-6-TEAM-2 GitHub Wiki

Dot Env

Установка

Установка python-dotenv:

$ pip install python-dotenv

Создать файл:

.
├── .env
└── settings.py

Добавить .env в файл .gitignore.

Внести переменные окружения в файл .env:

ENV_VAR="variable_value"

Внести в файл settings.py:

import os
from dotenv import load_dotenv

load_dotenv('.env')

Внести в файл manage.py:

import os
import sys
import dotenv


if __name__ == "__main__":
    dotenv.read_dotenv()

    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)

В метод read_dotenv() можно передать точный адрес к файлу .env .

Для изменения пути:

read_dotenv(override=True).

Если вы запускаете Django с помощью WSGI, для загрузки файла .env добавьте в файл wsgi.py:

import os
import dotenv

from django.core.wsgi import get_wsgi_application

dotenv.read_dotenv(os.path.join(os.path.dirname(os.path.dirname(__file__)), '.env'))

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")

application = get_wsgi_application()

Для самостоятельной загрузки конфигураций из существующего файла .env:

import os
form dotenv import load_dotenv, find_dotenv

Вариант 1

load_dotenv(os.join(os.dirname(__file__), '.env')

Вариант 2

load_dotenv(find_dotenv(usecwd=True))