users_query = db_session.query(User).filter(
~User.id.in_(followed_user_ids),
User.status.in_([User.STATUS_NORMAL, User.STATUS_SUPER])
)
用.all()的话,结果太多了,我只想随机要5项,怎么写呢?
查了下stackoverflow已经解决:
http://stackoverflow.com/search?q=sqlalchemy+random
users = users_query.order_by(func.rand()).limit(5)
阿神2017-04-17 17:40:33
是随机 5 项,还是前 5 项?
如果是前五项,比较简单:
users_query = db_session.query(User).filter(
~User.id.in_(followed_user_ids),
User.status.in_([User.STATUS_NORMAL, User.STATUS_SUPER])
).limit(5).all()
如果是随机5项,要加一些东西:
from sqlalchemy.sql.expression import func
users_query = db_session.query(User).filter(
~User.id.in_(followed_user_ids),
User.status.in_([User.STATUS_NORMAL, User.STATUS_SUPER])
).order_by(func.random()).limit(5).all()