Почему файлы 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 делает ненужным жесткое кодирование конфиденциальной информации в ваш исходный код и упрощает совместное использование кода.