【发布时间】:2020-10-05 04:59:36
【问题描述】:
我正在尝试为我的一个视图设置分页,但结果被过滤了,我想知道如何做这样的事情。
products_product_name = Product.query.filter(Product.product_name.contains(search_name)).paginate(1, 20)
【问题讨论】:
-
可以对来自 Flask-SQLAlchemy 的任何查询对象调用 paginate 方法。 flask_sqlalchemy.Pagination(query, page, per_page, total, items) 可以用来。 flask-sqlalchemy.palletsprojects.com/en/2.x/api
-
但是如何在使用这样的过滤器的查询中使用它?
-
哦,我想我基本上可以这样做,但只是一个与这个没有直接关系的问题,有没有办法可以显示当前和以前的分页页面立刻?顺便说一句,谢谢
-
你应该看看blog.miguelgrinberg.com/post/…。他创建了一个查询,然后将其传递给另一个使用 order_by 的查询,并对其应用分页。但也许你可以在过滤方法之后直接应用分页。对于您的第二个问题:您可以通过更改 per_page 选项执行 2 个查询或执行更大的查询,以获得双倍的值。
-
是的,但我的想法是在开始显示 20 时喜欢,然后当单击显示更多而不是切换页面时,它将显示 40,然后显示 60 等。但我想我可以使用 page 变量和每当查询显示 20*page_num
标签: python flask pagination flask-sqlalchemy