python - 如何使用 Flask SQLAlchemy 从 mysql 获取有限数量的行?

标签 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()。

最佳答案

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

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

关于python - 如何使用 Flask SQLAlchemy 从 mysql 获取有限数量的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55646434/

相关文章:

python - 使用 PyCharm 调试器运行 Flask CLI 命令

python - Flask:获取 request.files 对象的大小

python - Matplotlib 的 'annotate' 无法在 PDF 中正确定位文本?

python - 非常快地增量增加 Sprite 位置,没有滞后 - Python

python - 使用 mock 模拟导入的模块以测试 Pylons Controller 功能

Python(Flask) 用户输入表单

python - Django 是否有像 South 这样的 SQLAlchemy 自动迁移工具?

python - Sqlalchemy - 使用过滤器更新行会产生列表索引错误

mysql - 在 SQLAlchemy 中处理 mysql 重启

python - 数组索引太多