Найти - Пользователи
Полная версия: Как в SQLAlchemy сделать выборку только по заданным полям
Начало » Базы данных » Как в SQLAlchemy сделать выборку только по заданным полям
1
DevPy
На сайте использую Flask и SQLAlchemy для работы с БД.
Для страницы “списка новостей” использую запрос:
News.query.order_by('date DESC').paginate(page, per_page=20)

Все нормально работает. Но такой запрос тянет из БД все данные находящиеся в записи каждой новости - это сама статья, источники на новость, автор и т.д.
Хотя для страницы “списка новостей” достаточно всего лишь заголовка, изображения, id и даты.

Как можно дополнить/изменить запрос так, чтобы запрос содержал только список требуемых данных (id, title, date, image)?

Облазив маны и примеры нашел только единственный способ:
engine.execute('SELECT id, title, date, image ORDER date DESC FROM news').all()
но данный способ использования чистых SQL запросов не кажется мне совсем правильным.
FishHook
Попробуй как-то так

News.query.select('id','date','image').order_by('date DESC').paginate(page, per_page=20)
DevPy
FishHook
.select('id','date','image') и ему подобные не подошли

ziro
в документации не было информации про то как это сделать в Flask.

Решение нашел. Нужно использовать: .with_entities(News.id, News.date, News.image)
т.е. запрос получится такой:
News.query.with_entities(News.id, News.title, News.date, News.image).order_by('date DESC').paginate(page, per_page=20)
все остальное естественно загружаться не будет
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB