¿Cómo especifico la columna que quiero en mi consulta usando un modelo (selecciona todas las columnas por defecto)? Sé cómo hacer esto con la sesión sqlalchmey:, session.query(self.col1)
pero ¿cómo lo hago con modelos? No puedo hacerlo SomeModel.query()
. ¿Hay alguna manera?
python
sqlalchemy
flask-sqlalchemy
Matthew Scragg
fuente
fuente
ID
campo de conflicto que está presente en ambas tablas.label()
stackoverflow.com/a/11535992/248616es lo mismo que
para alias, podemos usar .label ()
fuente
session.query().with_entities(SomeModel.col1)
Puede usar la función load_only :
fuente
.first()
y.one()
(que cargará campos y relaciones perezosos / ansiosos), - se puede configurar como componente de consultawith_entities
como se indica en la respuesta aceptada y la consulta seleccionó solo esos campos /.Puede usar
Model.query
, porqueModel
se asigna (o generalmente su clase base, especialmente en los casos en que se usa la extensión declarativa)Sesssion.query_property
. En este caso elModel.query
es equivalente aSession.query(Model)
.No conozco la forma de modificar las columnas devueltas por la consulta (excepto agregando más uso
add_columns()
).Entonces, tu mejor oportunidad es usar el
Session.query(Model.col1, Model.col2, ...)
(como ya lo mostró Salil).fuente
Puede utilizar Query.values, Query.values
session.query(SomeModel).values('id', 'user')
fuente
Un ejemplo aquí:
Busco en la base de datos películas con calificación <> 0, y luego las ordeno primero por calificación con la calificación más alta.
Eche un vistazo aquí: Seleccionar, Insertar, Eliminar en Flask-SQLAlchemy
fuente