django分頁器paginator使用簡單說明
阿新 • • 發佈:2017-11-10
django 分頁
Django之分頁功能
Django提供了一個新的類來幫助你管理分頁數據,這個類存放在django/core/paginator.py.它可以接收列表、元組或其它可叠代的對象。
基本語法
class Paginator(object): def __init__(self, object_list, per_page, orphans=0, allow_empty_first_page=True): self.object_list = object_list self.per_page = int(per_page) self.orphans = int(orphans) self.allow_empty_first_page = allow_empty_first_page ……
基本語法實例
#!/usr/bin/env python # _*_ coding:utf-8 _*_ import os from django.core.paginator import Paginator objects = [‘john‘,‘paul‘,‘george‘,‘ringo‘,‘lucy‘,‘meiry‘,‘checy‘,‘wind‘,‘flow‘,‘rain‘]<br> p = Paginator(objects,3) # 3條數據為一頁,實例化分頁對象 print p.count # 10 對象總共10個元素 print p.num_pages # 4 對象可分4頁 print p.page_range # xrange(1, 5) 對象頁的可叠代範圍 page1 = p.page(1) # 取對象的第一分頁對象 print page1.object_list # 第一分頁對象的元素列表[‘john‘, ‘paul‘, ‘george‘] print page1.number # 第一分頁對象的當前頁值 1 page2 = p.page(2) # 取對象的第二分頁對象 print page2.object_list # 第二分頁對象的元素列表 [‘ringo‘, ‘lucy‘, ‘meiry‘] print page2.number # 第二分頁對象的當前頁碼值 2 print page1.has_previous() # 第一分頁對象是否有前一頁 False print page1.has_other_pages() # 第一分頁對象是否有其它頁 True print page2.has_previous() # 第二分頁對象是否有前一頁 True print page2.has_next() # 第二分頁對象是否有下一頁 True print page2.next_page_number() # 第二分頁對象下一頁碼的值 3 print page2.previous_page_number() # 第二分頁對象的上一頁碼值 1 print page2.start_index() # 第二分頁對象的元素開始索引 4 print page2.end_index() # 第2分頁對象的元素結束索引 6
在視圖中的應用
from django.core.paginator import Paginator, InvalidPage,EmptyPage,PageNotAnInteger from django.shortcuts import render def listing(request): try: article_list = Article.objects.all() #獲取文章數據 paginator = Paginator(article_list,3) #創建分頁對象,每頁顯示5個 try: page = int(request.GET.get(‘page‘,1)) #獲取分頁當前頁,如果客戶沒有傳任何數據,則默認為1 article_list = paginator.page(page) except (EmptyPage,InvalidPage,PageNotAnInteger): article_list = paginator.page(1) except Exception as e: logger.error(e) return render(request, "index.html", locals()) #locals是一個函數,包含當前作用域所有變量對象
前端配置:
在template的html模板中的應用
{% %} {{ .}} {{ .}} {% ..%}{{ .}}{% %}{{ .}}瀏覽({{ .}})評論({{ ...}}) {% %}
{% .%} {{ .}}上一頁 {% %} 上一頁 {% %} {{ .}}/{{ ..}} {% .%} {{ .}}下一頁 {% %} 下一頁 {% %}
django分頁器paginator使用簡單說明