Как указать столбец, который мне нужен в моем запросе, используя модель (по умолчанию она выбирает все столбцы)? Я знаю, как это сделать с помощью сеанса sqlalchmey:, session.query(self.col1)
но как мне это сделать с моделями? Я не могу SomeModel.query()
. Есть способ?
python
sqlalchemy
flask-sqlalchemy
Мэтью Скрэгг
источник
источник
ID
поле конфликта, которое присутствует в обеих таблицах.label()
stackoverflow.com/a/11535992/248616такой же как
для псевдонима мы можем использовать .label ()
источник
session.query().with_entities(SomeModel.col1)
Вы можете использовать функцию load_only :
источник
.first()
и и.one()
(который будет ленивым / нетерпеливым загружать поля и отношения), - может быть установлен как компонент запросаwith_entities
как указано в принятом ответе, и запрос выбрал только эти поля /.Вы можете использовать
Model.query
, потому чтоModel
(или обычно его базовый класс, особенно в случаях, когда используется декларативное расширение) назначенSesssion.query_property
. В этом случаеModel.query
эквивалентноSession.query(Model)
.Я не знаю, как изменить столбцы, возвращаемые запросом (за исключением добавления дополнительных значений
add_columns()
).Так что лучше всего использовать
Session.query(Model.col1, Model.col2, ...)
(как уже показал Салил).источник
Вы можете использовать Query.values, Query.values
session.query(SomeModel).values('id', 'user')
источник
Пример здесь:
Я запрашиваю в БД фильмы с рейтингом <> 0, а затем сначала упорядочиваю их по рейтингу с самым высоким рейтингом.
Взгляните сюда: Select, Insert, Delete in Flask-SQLAlchemy
источник