Fastapi中对查询结果进行排序

前言

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()

本期分享就到这里啦。祝君在测开之路上越走越顺,越走越远。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容