Выбор ответа Junior SQLAlchemy 2.0 обновлено
Запрос в стиле SQLAlchemy 2.0
Вопрос
Как в стиле SQLAlchemy 2.0 получить список активных пользователей?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: session.scalars(select(User).where(User.isactive)).all(). В 2.0 запрос строится конструкцией select(), выполняется через session.execute или session.scalars, а scalars разворачивает строки в объекты User. session.query работает, но это legacy-стиль. objects.filter это Django ORM, а строка SQL без…
Варианты ответа
session.scalars(select(User).where(User.is_active)).all()правильный ответUser.objects.filter(is_active=True)session.query(User).filter_by(is_active=True).all()единственный способselect * from User where is_active
Разбор
В 2.0 запрос строится конструкцией select(), выполняется через session.execute или session.scalars, а scalars разворачивает строки в объекты User. session.query работает, но это legacy-стиль. objects.filter это Django ORM, а строка SQL без text() не выполнится.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Код-ревью async-сервиса на SQLAlchemy
Следующий вопрос
selectinload против joinedload