Скрытые переменные в Repl.it

Если вы используете какие-нибудь сторонние сервисы, вроде Gmail или Telegram, вам непременно придётся указать пароль от них в своём коде. Но ведь тогда все его увидят и ваш аккаунт сразу украдут злоумышленники! Чтобы ваши пароли не украли, в Repl есть так называемые переменные окружения. Эти переменные доступны только вам и не видны для других.

Как создавать переменные окружения

Создание переменных окружения делается в меню слева в пункте Secrets(Environment variables):

sample gif

Как называть переменные окружения

Переменные окружения принято называть заглавными буквами с символом подчёркивания между словами, например: DATABASE_LOGIN.

В начале, первым словом обычно добавляют название сервиса, которому принадлежит переменная. Например, если вы хотите сохранить в коде свой пароль от ВКонтакте, то называйте его не просто PASSWORD, а VK_PASSWORD.

Как пользоваться переменными окружения

Считываются они с помощью встроенного модуля os двумя способами. Из атрибута .environ:

import os

login = os.environ["LOGIN"]

print("Ваш логин:")
print(login) # Выведется admin

Или методом .getenv():

import os

login = os.getenv("LOGIN")

print("Ваш логин:")
print(login) # Выведется admin

Можете выбрать любой, как вам удобнее.

Обратите внимание на разные типы скобок в примерах кода. Не перепутайте!

Если вы не в Repl, а на своём компьютере

Чтобы создать переменные окружения на своём компьютере создайте специальный файл .env рядом с main.py. Внутри файлы .env похожи на списки из переменных и их значений:

LOGIN=admin
PASSWORD=admin12345

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

Узнать больше


Попробуйте бесплатные уроки по Python

Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.

Переходите на страницу учебных модулей «Девмана» и выбирайте тему.