Управление конфигурацией через .env в Python

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

pythondotenvenv-файлы

👁 Когда работаешь с проектами, которые используют разные среды (например, разработка, тестирование, продакшн), часто возникает необходимость хранить настройки среды (например, ключи API, пароли, URL баз данных и прочее) в отдельных файлах, которые не должны попадать в систему контроля версий.

Python предоставляет простое решение для работы с такими данными через библиотеку python-dotenv, которая позволяет загружать переменные окружения из .env файла.

📝 Как использовать:

pip install python-dotenv

— Создаём файл .env:

DATABASE_URL=postgres://user:password@localhost/dbname
SECRET_KEY=mysecretkey
DEBUG=True

— В Python-коде загружаем переменные окружения из .env файла:

from dotenv import load_dotenv
import os

# Загружаем переменные из .env
load_dotenv()

# Чтение переменных окружения
database_url = os.getenv('DATABASE_URL')
secret_key = os.getenv('SECRET_KEY')
debug_mode = os.getenv('DEBUG')

# Используем переменные
print(f"Connecting to {database_url} with secret key {secret_key} and debug mode {debug_mode}")

🔎 Пояснение:

  • load_dotenv() загружает все переменные из файла .env в окружение
  • os.getenv() используется для получения значения переменной окружения. Это защищает от ошибок в случае отсутствия переменной (возвращает None)

❗️ Это решение подходит для проектов с конфиденциальными данными (например, API-ключи, пароли) или с изменяющимися настройками (например, подключение к различным базам данных в разных средах). Использование .env файлов — хороший способ избежать утечек данных и сделать проект более гибким.

tags: #python #разработка

❤️ @recura_tech

Скриншот тёмной темы с примером кода на Python: load_dotenv и чтение переменных через os.getenv, логотип RECURA.
Пример использования python-dotenv и os.getenv в коде проекта.

Читайте так же