IT

Flask SQLAlchemy 쿼리, 열 이름 지정

lottoking 2020. 8. 27. 21:14
반응형

Flask SQLAlchemy 쿼리, 열 이름 지정


모델을 사용하여 쿼리에서 원하는 열을 지정해야합니까 (기본적으로 모든 열이 선택됨)? sqlalchmey session : 으로이 작업을 수행하는 방법을 알고 session.query(self.col1)싶습니다 모델로 어떻게 수행 할 수 있습니까? 나는 할 수 없다 SomeModel.query(). 방법이 있습니까?


with_entities()메서드를 사용 하여 결과에 반환 할 열을 제한 할 수 있습니다 . ( 문서 )

result = SomeModel.query.with_entities(SomeModel.col1, SomeModel.col2)

요구 사항에 따라 지연이 유용 할 수도 있습니다 . 이를 통해 신호를 전달합니다.


session.query().with_entities(SomeModel.col1)

와 같다

session.query(SomeModel.col1)

.label ()을 사용할 수 있습니다.

session.query(SomeModel.col1.label('some alias name'))

load_only 함수 를 사용할 수 있습니다 .

from sqlalchemy.orm import load_only

fields = ['name', 'addr', 'phone', 'url']
companies = session.query(SomeModel).options(load_only(*fields)).all()

(또는 일반적으로 기본 클래스, 특히 선언적 확장이 사용되는 경우) 할당 Model.query되기 때문에 사용할 수 있습니다 . 이 경우는 동일하다 .ModelSesssion.query_propertyModel.querySession.query(Model)

쿼리에서 반환 된 열을 수정하는 방법을 알지 못합니다 (를 사용하여 더 추가하는 경우 제외 ). 따라서 가장 좋은 방법은 (Salil이 이미 보여준 것처럼 )를 사용하는 것 입니다.add_columns()
Session.query(Model.col1, Model.col2, ...)


여기에 예 :

movies = Movie.query.filter(Movie.rating != 0).order_by(desc(Movie.rating)).all()

등급이 <> 0 인 영화에 대해 db를 쿼리 한 다음 가장 높은 등급으로 등급을 매겨 순서를 지정합니다.

여기에서보기 : Flask-SQLAlchemy에서 선택, 삽입, 삭제

참고 URL : https://stackoverflow.com/questions/11530196/flask-sqlalchemy-query-specify-column-names

반응형