How can I do multiple "order_by" in Flask-SQLAlchemy?

This should work

User.query.order_by(User.popularity.desc(), User.date_created.desc()).limit(10).all()

What you also could do:

from sqlalchemy import and_, or_
User.query.order_by(and_(User.popularity.desc(), User.date_created.desc())).all()

Note: and_ and or_ are coming from the sqlalchemy library and not from flask_sqlalchemy library. sqlalchemy is a dependency for flask_sqlalchemy, so you should be good.

LTS: You can mix sqlalchemy lib with flask_alchemy lib


You can also use sqlalchemy.sql.text like this:

from sqlalchemy.sql import text

User.query.order_by(text("popularity desc, date_created desc")).limit(10).all()