如何根据变量动态设置顺序,如asc或desc,用于sqlite数据库的sqlalchemy查询?
伪代码如下:
sort_order = "asc"
sql_session.query(ResultsDBHistory).order_by(sort_order(ResultsDBHistory.postsize)).limit(max_items_shown)
如果我尝试这个,它将不接受该字符串。
答案 0 :(得分:3)
您可以在.asc()
上访问.desc()
或ResultsDBHistory.postsize
方法作为属性:
order = 'asc'
column_sorted = getattr(ResultsDBHistory.postsize, order)()
sql_session.query(ResultsDBHistory).order_by(column_sorted).limit(max_items_shown)
因为列包含asc
和desc
方法。