Найти в Дзене

Как подружить Python и PostgreSQL. Часть 1: Первое свидание

Всем привет! Сегодня мы начинаем неделю статей про одну из самых классических связок в мире разработки — Python и PostgreSQL. Если вы только начинаете свой путь или уже пишете какие-то скрипты, но боитесь подключаться к базам данных, потому что "это сложно" и "там нужно учить SQL" — этот материал для вас. На самом деле, подружить эти две технологии проще, чем заварить утренний кофе (хотя с кофе тоже бывают косяки). Python — простой и понятный, как швейцарский нож. PostgreSQL — мощный, надежный и бесплатный, как хороший советский инструмент (или финский, если хотите). Вместе они могут выдержать нагрузку как небольшого блога, так и серьезного корпоративного приложения. Это стандарт индустрии. Чтобы Python понимал PostgreSQL, нужен специальный "переводчик" — драйвер. Самый популярный и проверенный — psycopg2 . Он как старый друг: знает все фишки, но иногда капризничает при установке. Открываем терминал (или командную строку) и пишем магическое заклинание: pip install psycopg2 Если вы
Оглавление



Всем привет! Сегодня мы начинаем неделю статей про одну из самых классических связок в мире разработки —
Python и PostgreSQL.

Если вы только начинаете свой путь или уже пишете какие-то скрипты, но боитесь подключаться к базам данных, потому что "это сложно" и "там нужно учить SQL" — этот материал для вас. На самом деле, подружить эти две технологии проще, чем заварить утренний кофе (хотя с кофе тоже бывают косяки).

Почему именно эта парочка?

Python — простой и понятный, как швейцарский нож. PostgreSQL — мощный, надежный и бесплатный, как хороший советский инструмент (или финский, если хотите). Вместе они могут выдержать нагрузку как небольшого блога, так и серьезного корпоративного приложения. Это стандарт индустрии.

Что нам понадобится для первого знакомства?

  1. Установленный Python. Проверить можно командой python --version (или python3 --version на Linux/Mac). Если выдает ошибку — идем на официальный сайт и качаем.
  2. Установленный PostgreSQL. Скачать можно с официального сайта. При установке вам предложат придумать пароль для суперпользователя postgres. Запомните его! Это как пароль от входной двери.
  3. Менеджер пакетов pip. Обычно идет в комплекте с Python.
  4. Немного смелости.

Шаг 1. Устанавливаем "переводчика"

Чтобы Python понимал PostgreSQL, нужен специальный "переводчик" — драйвер. Самый популярный и проверенный — psycopg2 . Он как старый друг: знает все фишки, но иногда капризничает при установке.

Открываем терминал (или командную строку) и пишем магическое заклинание:

pip install psycopg2

Если вы на Windows и он ругается на отсутствие Visual C++, не пугайтесь. Есть более лайтовая версия, собранная "из коробки":

pip install psycopg2-binary

Для учебных проектов и небольших приложений её вполне достаточно .

Шаг 2. Создаем базу данных

Заходим в "админку" PostgreSQL. Проще всего через терминал:

sudo -u postgres psql

(На Windows вы можете найти "SQL Shell (psql)" в меню Пуск).

Теперь создадим базу данных для наших экспериментов. Назовем её, допустим, my_blog_db:

CREATE DATABASE my_blog_db;

Выходим из консоли PostgreSQL:

\q

Шаг 3. Пишем код для подключения

Создайте файл first_meet.py и напишите следующее:

import psycopg2

# Параметры подключения
# В реальном проекте пароль и логин хранят в переменных окружения!
conn_params = {
"host": "localhost",
"database": "my_blog_db",
"user": "postgres", # Или ваш пользователь, если создавали отдельного
"password": "ваш_пароль", # Тот самый пароль, который вы вводили при установке
"port": "5432" # Стандартный порт PostgreSQL
}

connection = None
cursor = None

try:
# Пытаемся наладить контакт
print("Пытаюсь подключиться к базе данных...")
connection = psycopg2.connect(**conn_params)
cursor = connection.cursor()
print("✅ Успешное подключение к базе данных!")

# Немного магии: создаем табличку для постов в блоге
cursor.execute("""
CREATE TABLE IF NOT EXISTS posts (
id SERIAL PRIMARY KEY,
title VARCHAR(200) NOT NULL,
content TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
""")
connection.commit()
print("✅ Таблица 'posts' успешно создана или уже существует.")

except psycopg2.OperationalError as e:
print(f"❌ Ошибка подключения: {e}")
print("Проверьте, запущен ли PostgreSQL и правильность пароля/логина.")
except Exception as e:
print(f"❌ Какая-то другая ошибка: {e}")
if connection:
connection.rollback()
finally:
# Важно! Всегда закрываем соединение
if cursor:
cursor.close()
if connection:
connection.close()
print("Соединение с базой закрыто.")

Запускаем файл:

python first_meet.py

Если вы увидели зеленые галочки — поздравляю! Первый контакт налажен. Вы только что научили Python разговаривать с PostgreSQL.

Что мы сделали?

  1. Установили драйвер.
  2. Создали базу.
  3. Подключились к ней.
  4. Создали таблицу через Python-скрипт.

В следующей части мы разберем, как правильно вставлять данные, делать выборку и почему нельзя открывать новое соединение на каждый чих (спойлер: база данных упадет).