前言
在
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()
本期分享就到这里啦。祝君在测开之路上越走越顺,越走越远。