sqlalchemy Order By

示例

给定一个基本模型:

class SpreadsheetCells(Base):
    __tablename__ = 'spreadsheet_cells'

    id = Column(Integer, primary_key=True)
    y_index = Column(Integer)
    x_index = Column(Integer)

您可以通过链接order_by方法来检索有序列表。

query = session.query(SpreadsheetCells).order_by(SpreadsheetCells.y_index)

可以filter,

query = session.query(...).filter(...).order_by(...)

或进一步构成现有查询。

query = session.query(...).filter(...)
ordered_query = query.order_by(...)

您还可以通过以下两种方式之一确定排序方向:

  1. 访问字段属性asc和dsc:

query.order_by(SpreadsheetCells.y_index.desc()) # desc
query.order_by(SpreadsheetCells.y_index.asc()) # asc
  1. 使用asc和desc模块功能:

from sqlalchemy import asc, desc

query.order_by(desc(SpreadsheetCells.y_index)) # desc
query.order_by(asc(SpreadsheetCells.y_index)) # asc