Добро пожаловать на День 2 12 Дней DigitalOcean! Вчера мы начали создавать наш Сервис Напоминания о Дне Рождения — простое приложение, которое отправляет SMS-уведомления о предстоящих днях рождения. 🎉 Мы настроили базу данных PostgreSQL на DigitalOcean для хранения контактных данных.
Сегодня мы подключимся к этой базе данных, используя Python, и настроим наш проект для безопасного хранения конфиденциальных данных.
К концу этого поста у вас будет скрипт на Python, который безопасно извлекает данные из вашей базы данных и готов к масштабированию, когда мы разместим его на DigitalOcean.
✨ Почему этот шаг важен?
Настройка базы данных была только началом. Чтобы создать какое-либо значимое приложение, нам нужен способ программно взаимодействовать с этими данными. Python упрощает подключение к базам данных PostgreSQL, а с помощью библиотеки, такой как pg8000, мы можем работать с базами данных PostgreSQL всего в нескольких строках кода.
Чтобы обеспечить безопасность, мы будем хранить наши учетные данные базы данных в файле .env
и загружать их в наш скрипт с помощью python-dotenv. Это гарантирует, что ваши учетные данные не будут жестко закодированы в скрипте, что делает его безопаснее для обмена и развертывания вашего приложения.
🚀 Что вы узнаете
Вот план на сегодня:
- Храните конфиденциальные учетные данные в файле
.env
. - Используйте
python-dotenv
, чтобы загрузить эти учетные данные в ваш скрипт. - Напишите скрипт на Python для безопасного подключения к вашей базе данных PostgreSQL с использованием
pg8000
- Извлеките и отобразите данные из таблицы
contacts
К концу этого у вас будет прочная основа для построения логики приложения.
🛠 Что вам понадобится
Прежде чем приступить, вот что вам понадобится:
- База данных, которую мы настроили на День 1. TODO: Ссылка на URL дня 1
- Python установлен на вашем локальном компьютере (рекомендуем Python 3.8+).
🧑🍳 Рецепт на День 2: Подключение к PostgreSQL с помощью Python
Шаг 1: Установите необходимые библиотеки 📦
Для подключения Python к PostgreSQL и обеспечения безопасности наших учетных данных мы будем использовать две ключевые библиотеки:
- pg8000: чистая библиотека Python, которая позволяет вам подключаться и взаимодействовать с базами данных PostgreSQL.
- python-dotenv: утилита для загрузки конфиденциальных учетных данных (таких как имена пользователей и пароли к базе данных) из файла
.env
, чтобы вам не приходилось жестко кодировать их в вашем скрипте.
Давайте установим их сейчас. Выполните эту команду в вашем терминале:
Совет профессионала: Если вы используете виртуальную среду (всегда хорошая идея!), убедитесь, что вы активировали ее перед выполнением вышеуказанной команды, чтобы ваши зависимости были организованы.
Шаг 2: Создайте файл .env 📂
В каталоге вашего проекта создайте файл с именем .env. Здесь мы будем хранить наши учетные данные для базы данных. Добавьте следующее:
Замените значения-заполнители учетными данными из Дня 1.
Совет: Добавьте .env
в ваш файл .gitignore
, чтобы гарантировать, что ваши учетные данные случайно не были загружены в систему контроля версий.
Шаг 3: Создайте Python-скрипт 🐍
Создайте новый файл с именем connect_to_db.py
и настройте скрипт для загрузки учетных данных из .env
с использованием python-dotenv
и подключения к нашей базе данных.
Вот код для начала:
Этот скрипт выполняет несколько важных задач:
- Безопасно загружает учетные данные из вашего файла
.env
. - Устанавливает соединение с вашей базой данных с помощью
pg8000.connect()
. - Выводит сообщение об успехе или ошибке в зависимости от результата.
Шаг 4: Проверьте соединение ✅
Теперь давайте убедимся, что все работает. Запустите ваш скрипт:
Если все настроено правильно, вы должны увидеть:
Если возникла ошибка:
- Проверьте значения в вашем .env файле.
- Убедитесь, что ваш IP-адрес добавлен в доверенные источники базы данных (см. Шаг 6 из Дня 1).
Шаг 5: Извлечение данных из базы данных 🔍
Теперь давайте расширим скрипт для извлечения данных. Обновите ваш скрипт connect_to_db.py
, чтобы включить следующее:
Этот скрипт теперь:
- Выполняет запрос для получения всех записей из таблицы контактов.
- Выводит каждую запись в консоль.
Примечание: Если таблица пуста, не переживайте! Вы все равно можете убедиться, что скрипт выполняется без ошибок. Для тестирования вы можете быстро добавить пример контакта, открыв вашу базу данных с помощью psql
(или вашего предпочтительного инструмента) и запустив эту SQL-команду:
Если вам нужно освежить знания о том, как использовать psql, или вы хотите исследовать инструменты с графическим интерфейсом, такие как pgAdmin или TablePlus, ознакомьтесь с инструкциями в День 1.
🎁 Завершение
Вот что вы достигли сегодня:
✅ Установлены необходимые библиотеки Python.
✅ Подключились к вашей базе данных PostgreSQL на DigitalOcean с помощью Python.
✅ Получили данные из таблицы contacts
с помощью простого запроса.
Следующее: Завтра мы начнем добавлять логику для поиска предстоящих дней рождения и отправки SMS-уведомлений с использованием Twilio. Вот где приложение начинает оживать — оставайтесь с нами! 🚀
Source:
https://www.digitalocean.com/community/tutorials/connecting-to-postgresql-database-with-python