2017-04-05 21 views
1

是否有與小馬ORM分頁的最佳做法?分頁與小馬ORM

我看到別人有這些has_nexthas_previous輔助方法,但在小馬我是我自己的。

到目前爲止,這是我,一對夫婦神社幫手:

# 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 %} 

所以我錯過了什麼?有更好的方法嗎?

回答

0

您可以查詢分頁

q = models.select(d for d in models.Thingy) 
page = 1 
count = q.count() 
results_of_first_page = q.page(page, 20) 
pages = int(count/20) 
if pages > 20: 
    pages = 20