Почему файлы dotenv важны для ваших проектов кодирования?

Файлы .env, также известные как dotenvs или файлы окружения, часто рекомендуются другими разработчиками, и многие руководства по кодированию используют их без полного объяснения причин. В этой статье мы рассмотрим, почему мы должны их использовать и как они работают.

Что это такое?

dotenv используется для хранения «переменных среды» AKA переменных, которые нам нужны для настройки среды нашего кода. Это может включать информацию о том, работает ли наш проект в «производственном» режиме или в режиме «разработчика», но, что наиболее важно, ключи API и базы данных. Эти переменные нужны нам для доступа к различным службам нашего проекта, но мы не хотим, чтобы другие могли их видеть и получать к ним доступ. Примером этого может служить созданный вами токен бота разногласий — если бы он был доступен для просмотра в вашем коде, любой мог бы войти в систему как ваш бот.

Вы всегда должны исключать файлы .env, используя файлы .gitignore или другие типы файлов, предназначенные для предотвращения доступа к файлам.

Зачем это использовать?

Dotenv помогает обеспечить безопасность конфиденциальной информации и позволяет вам управлять этими переменными и использовать их согласованным и организованным образом. Кроме того, использование файла .env может упростить совместное использование вашего кода с другими, поскольку вы можете исключить файл .env из системы контроля версий и позволить каждому члену команды или соавтору устанавливать свои собственные переменные среды.

Как это работает?

Файл .env — это простой текстовый файл, содержащий список переменных среды в виде пар KEY=VALUE. Эти переменные могут быть доступны и использоваться приложениями или службами, работающими в той же среде, что и файл .env.

Вы можете использовать пакеты, такие как dotenv в python, для временной загрузки пар ключ-значение в системные переменные среды. Если вы используете MacOS, вы можете посмотреть, как это работает, набрав export a=b && echo $a, это покажет, что ваш терминал возвращает вам b. По сути, мы делаем это в масштабе вашего проекта, и вы заметите, что когда вы выходите из терминала и загружаете его снова, echo $a больше ничего не делает.

Как настроить?

«Хорошо, я продан», — слышу я. Давайте настроим среду Python с dotenv и используем ее в нашем коде.

Во-первых, мы настраиваем среду для наших пакетов Python и загружаем их, запустив:

python3 -m venv venv
source venv/bin/activate
pip3 install python-dotenv
touch main.py
touch .env

С помощью этого кода мы создали проект Python с пакетом dotenv и двумя файлами, main.py и .env. Давайте откроем dotenv и напишем несколько секретов!

PASSWORD=super_secret_password0_0

наш файл main.py может выглядеть так:

import os
from dotenv import load_dotenv

load_dotenv() # runs "export key=value" on all our key/value pairs

SECRETPASSWORD=os.environ["PASSWORD"]
print(SECRETPASSWORD) # do not do this in any real projects!!!

Хорошо, теперь наш вывод кода должен быть «super_secret_password0_0», что показывает, что наш dotenv сработал!

Конечно, в своих проектах вы не должны распечатывать какие-либо файлы окружения, а просто использовать их для доступа к различным сервисам!

Заключение

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