scalars() возвращает объект ScalarResult с первым значением каждой строки результата. Перечисленные выше методы Result также доступны для этого нового объекта результата. scalar() возвращает первое значение первой строки результата. ``` user = session.scalar(query) ``` Пример запроса ``` tokens = session.scalars(user.tokens.select().order_by(Token.expiration)).all() ``` Чтобы выполнить запрос, его можно передать методу execute() объекта session: ``` results = session.execute(query) ``` Возвращаемое значение из вызова execute() — это объект Result, который функционирует как итерируемый объект, возвращающий объекты Row с интерфейсом, аналогичным именованному кортежу. Если вы предпочитаете получать результаты, не повторяя их, есть несколько методов, которые можно вызвать для этого объекта. Вот некоторые из них: all() чтобы вернуть список с объектом строки для каждой строки результата. first() чтобы вернуть первую строку результата. one() чтобы вернуть первую строку результата и вызвать исключение, если результатов нет или их несколько. one_or_none() чтобы вернуть первую строку результата или None если результатов нет, или вызвать исключение если есть более одного результата. Подробнее - https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.one