Встречается на собеседованиях • сегодня

Какие знаешь способы работы с БД в SQLAlchemy

SQLAlchemy предоставляет два основных подхода для работы с БД: Core (низкоуровневый) и ORM (высокоуровневый).

1. SQLAlchemy Core

Работает напрямую с SQL, но абстрагирует синтаксис под разные СУБД.

python
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData

engine = create_engine('sqlite:///example.db')
metadata = MetaData()

users = Table(
    'users', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String),
)

metadata.create_all(engine)

Вставка данных

with engine.connect() as conn:
conn.execute(users.insert(), [{'name': 'Alice'}, {'name': 'Bob'}])

text

### **2. SQLAlchemy ORM**  
Объектно-реляционное отображение (ORM) позволяет работать с БД через Python-классы.  

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

Base = declarative_base()

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

engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)

Session = sessionmaker(bind=engine)
session = Session()

# Добавление записи
user = User(name='Alice')
session.add(user)
session.commit()

Дополнительно:

  • Асинхронная работа через asyncpg + SQLAlchemy 2.0 (async/await).
  • Alembic для миграций.
  • Hybrid подход – комбинация ORM и Core для сложных запросов.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы