前言
在
FastApi
使用過程中绿聘,遇到了一個排序的需求士飒,于是進行官網文檔閱讀谬莹,得到以下答案
第一種方案:在Query
對象基礎上進行排序
order_by 中傳入對象
升序
db.query(Step).filter(Step.page == db_page).order_by(Step.order_number).all()
降序
db.query(Step).filter(Step.page == db_page).order_by(Step.order_number.desc()).all()
order_by 中傳入字符串
升序
db.query(Step).filter(Step.page == db_page).order_by('create_time').all()
降序
db.query(Step).filter(Step.page == db_page).order_by(desc('create_time')).all()
第二種方案:定義模型時聲明
模型代碼:
class User(Base):
__tablename__ = "user"
id = Column(Integer , primary_key=True , autoincrement=True)
name = Column(String(50) , nullable=False)
create_time = Column(DateTime , nullable=False , default=datetime.now)
__mapper_args__ = {"order_by": create_time.desc()}
在模型中加上這一行:
__mapper_args__ = {"order_by": create_time.desc()}
再進行查詢:
results = session.query(User).all()
本期分享就到這里啦陋率。祝君在測開之路上越走越順教翩,越走越遠沛简。