国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django實現分頁功能

2020-02-15 22:06:46
字體:
來源:轉載
供稿:網友

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 Paginatorobjects = ['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() # 第一分頁對象是否有前一頁 Falseprint page1.has_other_pages() # 第一分頁對象是否有其它頁 True print page2.has_previous() # 第二分頁對象是否有前一頁 Trueprint page2.has_next() # 第二分頁對象是否有下一頁 Trueprint page2.next_page_number() # 第二分頁對象下一頁碼的值 3print page2.previous_page_number() # 第二分頁對象的上一頁碼值 1print page2.start_index() # 第二分頁對象的元素開始索引 4print page2.end_index() # 第2分頁對象的元素結束索引 6

 官方解釋在視圖中的應用

from django.core.paginator import Paginator, EmptyPage, PageNotAnIntegerfrom django.shortcuts import render def listing(request):  contact_list = Contacts.objects.all()  paginator = Paginator(contact_list, 25) # Show 25 contacts per page   page = request.GET.get('page')  try:    contacts = paginator.page(page)  except PageNotAnInteger:    # If page is not an integer, deliver first page.    contacts = paginator.page(1)  except EmptyPage:    # If page is out of range (e.g. 9999), deliver last page of results.    contacts = paginator.page(paginator.num_pages)   return render(request, 'list.html', {'contacts': contacts})

在template的html模板中的應用

{% for contact in contacts %}  {# Each "contact" is a Contact model object. #}  {{ contact.full_name|upper }}<br />  ...{% endfor %} <div class="pagination">  <span class="step-links">    {% if contacts.has_previous %}      <a href="?page={{ contacts.previous_page_number }}">previous</a>    {% endif %}     <span class="current">      Page {{ contacts.number }} of {{ contacts.paginator.num_pages }}.    </span>     {% if contacts.has_next %}      <a href="?page={{ contacts.next_page_number }}">next</a>    {% endif %}  </span></div>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九江县| 阿尔山市| 大悟县| 修武县| 文成县| 铜陵市| 资兴市| 罗城| 阳谷县| 全南县| 启东市| 古交市| 辛集市| 屏南县| 沙洋县| 民和| 建昌县| 治县。| 天长市| 闽侯县| 惠水县| 若羌县| 肇东市| 固镇县| 宝丰县| 敖汉旗| 两当县| 新昌县| 甘洛县| 姚安县| 乐业县| 万盛区| 临漳县| 静乐县| 出国| 宾川县| 漳平市| 巧家县| 焉耆| 乌兰浩特市| 临沭县|