Что такое SQLAlchemy и для чего она используется в Python

Ответ

SQLAlchemy — это мощная ORM-библиотека (Object-Relational Mapper) для Python, которая предоставляет инструментарий для работы с реляционными базами данных.

Она позволяет разработчикам взаимодействовать с БД, используя Python-классы и объекты, вместо написания SQL-запросов вручную. Это повышает читаемость кода, снижает количество ошибок и обеспечивает переносимость между разными СУБД (PostgreSQL, MySQL, SQLite и др.).

Ключевые компоненты:

  • Core: Низкоуровневая часть, предоставляющая SQL Expression Language. Позволяет строить SQL-запросы программно, оставаясь близко к самому SQL.
  • ORM: Высокоуровневая часть, которая сопоставляет (маппит) Python-классы с таблицами в базе данных. Это позволяет работать с записями как с обычными объектами.

Практический пример (использование ORM):

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

# 1. Определение модели
Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    email = Column(String(50), unique=True)

# 2. Настройка соединения и создание таблиц
engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)

# 3. Создание сессии для взаимодействия с БД
Session = sessionmaker(bind=engine)
session = Session()

# 4. Добавление нового объекта (строки в таблице)
new_user = User(name='John Doe', email='john.doe@example.com')
session.add(new_user)
session.commit()

# 5. Запрос данных
user = session.query(User).filter_by(name='John Doe').first()
print(f"Найден пользователь: {user.name}, Email: {user.email}")

session.close()