2017-04-05 5 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