Я думаю, что ответ @ georgexsh может быть более объяснительным. SQLAlchemy использует систему кэширования сеансов, а это означает, что все, что вы запрашивали из базы данных, сохраняется в памяти. Это означает, что каждый раз, когда вы вызываете .get()
, SQLAlchemy сначала просматривает кэш, чтобы определить, были ли запрошенные данные уже загружены в память. Если это так, он готов для отображения, в противном случае он отправит запрос в базу данных.
Используя кэширование, .get()
запросы обычно занимают меньше времени (обратите внимание, что после изменения в БД это займет больше времени). Это особенно полезно, если ваше приложение больше обслуживает, чем хранит.
Редактировать: Как указано в комментарии, сессия не является кешем, но, как указано в документации, сессия может быть интерпретирована как своего рода кеш.