如何使用flask SQLAlchemy从mysql获取有限的行数?

时间:2019-04-12 07:20:09

标签: python flask sqlalchemy flask-sqlalchemy

我无法获取数量有限的行。每当尝试尝试时,我总是会收到错误消息。

请注意,我还试图对获取的有限行数进行分页。

该程序可以正常运行,而无需使用限制。它能够随机获取和分页,但是当我尝试使用.limit()

时却给出了错误
def question(page=1):
    # questions = Question.query.paginate(page, per_page=1)
    quess = Question.query.order_by(func.rand())
    quest = quess.limit(2)
    questions = quest.paginate(page, per_page=1)

这是我不断得到的错误...

sqlalchemy.exc.InvalidRequestError

InvalidRequestError:在已应用LIMIT或OFFSET的查询上调用Query.order_by()。要修改查询的行限制结果,请首先调用from_self()。否则,请在应用limit()或offset()之前调用order_by()。

1 个答案:

答案 0 :(得分:0)

在同一查询中,您不能在order_by()之后调用limit()。 SQLAlchemy不允许您这样做。
在致电from_self()之前尝试使用paginate()

Question.query.order_by(func.rand())
   .limit(2).from_self()
   .paginate(page, per_page=1)