Como especifico a coluna que desejo na minha consulta usando um modelo (ele seleciona todas as colunas por padrão)? Eu sei como fazer isso com a sessão sqlalchmey:, session.query(self.col1)
mas como faço com modelos? Eu não posso fazer SomeModel.query()
. Há algum jeito?
python
sqlalchemy
flask-sqlalchemy
Matthew Scragg
fonte
fonte
ID
campo que está presente em ambos mesa.label()
stackoverflow.com/a/11535992/248616é o mesmo que
para alias, podemos usar .label ()
fonte
session.query().with_entities(SomeModel.col1)
Você pode usar a função load_only :
fonte
.first()
e.one()
(que carregará campos e relações preguiçosos / ansiosos), - pode ser definido como componente de consultawith_entities
como indicado na resposta aceita e a consulta selecionou apenas esses campos /.Você pode usar
Model.query
, porque aModel
(ou geralmente sua classe base, especialmente nos casos em que a extensão declarativa é usada) é atribuídaSesssion.query_property
. Nesse caso,Model.query
é equivalente aSession.query(Model)
.Não estou ciente da maneira de modificar as colunas retornadas pela consulta (exceto adicionando mais usando
add_columns()
).Portanto, sua melhor chance é usar o
Session.query(Model.col1, Model.col2, ...)
(como já mostrado por Salil).fonte
Você pode usar Query.values, Query.values
session.query(SomeModel).values('id', 'user')
fonte
Um exemplo aqui:
Consulto o banco de dados para filmes com classificação <> 0 e, em seguida, ordeno-os classificando com a classificação mais alta primeiro.
Dê uma olhada aqui: Selecionar, Inserir, Excluir no Flask-SQLAlchemy
fonte