有没有关于使用Pony ORM进行分页的最佳实践?
我发现其他人使用has_next
和has_previous
帮助方法,但在Pony中我必须自己实现。
到目前为止,这是我拥有的东西,一些Jinja helpers:
# Jinja helpers for pagination
def next_page(current, max_page):
if current >= max_page:
return False
else:
return current + 1
def prev_page(current, max_page):
if current < 2:
return False
else:
return current - 1
max_page
是这样计算的:math.ceil(MyTable.select().count()/PAGE_SIZE)
但这里需要不断传递当前页和最大页码,有点繁琐。
{% if maxpage > 1 %}
{% if prev_page(page, maxpage) %}
<a href="{{ url_for('index', pagenum=prev_page(page, maxpage)) }}"><</a>
{% endif %}
{% if next_page(page, maxpage) %}
<a href="{{ url_for('index', pagenum=next_page(page, maxpage)) }}">></a>
{% endif %}
{% endif %}
那我有什么遗漏吗?有更好的方法吗?
.page()
之前对查询进行排序:Product.select().order_by(lambda p: desc(p.price)).page(1)
您知道是否可以跳过.sort()
,就像您的示例一样?我想知道顺序是否会是随机的,然后页面会有重复的对象吗? - Michael Boesl