Django 分頁Paginator的簡單用法


最近的項目中用到了分頁功能,用Django自帶的Paginator來實現簡單的分頁。

第一步,導入Paginator及相關異常模塊

from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage

Paginator:分頁器對象

PageNotAnInteger:表示傳過來的頁碼不是Integer類型會引發該異常。

EmptyPage:表示頁碼不在有效范圍時(即頁碼過大或者過小,數據為空時)會引發該異常。

第二步,分頁功能編寫

其中:data是數據,list類型。start是頁數,int類型。limit每頁的個數,int類型

p = Paginator(data, limit)

p為分頁器對象,它的屬性包括:

count:返回對象列表(數據)的長度

num_pages:返回總頁數

page_range:返回頁碼列表

response = {}
    p = Paginator(data, limit)
    try:
        new_data = p.page(start)
    except PageNotAnInteger as e:
        print e
        # 頁碼不是整數返回第一頁
        new_data = p.page(1)
    except EmptyPage as e:
        print e
        total_num = p.num_pages
        if start > total_num:
            # 大於總頁碼 返回最后一頁數據返回
            new_data = p.page(total_num)
        else:
            new_data = p.page(1)
    print new_data, 'new_data'
    response['info'] = new_data.object_list

new_data為page的一個對象,它的常用屬性為:

  • object_list:同樣是指對象列表,不過只包含當前頁的對象
  • number:當前頁面的頁碼
  • paginator :指對應的分頁器對象(Paginator )

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM