欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

django實現分頁的方法

 更新時間:2015年05月26日 11:06:42   作者:NavCat  
這篇文章主要介紹了django實現分頁的方法,實例分析了django分頁的技巧與Paginator對象的用法,需要的朋友可以參考下

本文實例講述了django實現分頁的方法。分享給大家供大家參考。具體如下:

Python代碼如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Create your views here.
from django.shortcuts import render_to_response
from winlog.log_dj.models import Winlog
from django.core.paginator import Paginator,InvalidPage,EmptyPage,PageNotAnInteger
def index(request):
  after_range_num = 5
  before_range_num = 4
  try:
    page=int(request.GET.get('page','1'))
    if page < 1:
      page=1
  except ValueError:
    page=1
  winlog_list = Winlog.objects.all().order_by('-id')
  paginator = Paginator(winlog_list, 10)
  try:
    winloglist = paginator.page(page)
  except (EmptyPage,InvalidPage,PageNotAnInteger):
    winloglist = paginator.page(1)
  if page >= after_range_num:
    page_range = paginator.page_range[page-after_range_num:page+before_range_num]
  else:
    page_range = paginator.page_range[0:int(page)+before_range_num]
  return render_to_response('log_dj/index.html', locals())

HTML頁面如下:

{% for winlog in winloglist.object_list %}
  {{ winlog.date }}|{{ winlog.time }} <br />
{% endfor %}
{% if winloglist.has_previous %}
<a href="?page={{ winloglist.previous_page_number }}" title="下一頁">上一頁</a>&
nbsp;
{% endif %}
{% for p in page_range %}
{% ifequal p winloglist.number %}
<span>{{p}}</span>
{% else %}
<a href="?page={{p}}" title="第{{p}}頁">{{p}}</a>
{% endifequal %}
{% endfor %}
&nbsp;
{% if winloglist.has_next %}
<a href="?page={{ winloglist.next_page_number }}" title="下一頁">下一頁</a>&nbsp
;
{% endif %}
<!-- 第 {{ userList.number }} 頁 共 {{ userList.paginator.num_pages }} 頁-->

Paginator對象:

類Paginator:
class Paginator(object_list,per_page,orphans=0,allow_empty_first_page=True)

必須提供的參數:

object_list:一個列表或元組,元素是django QuerySet或是包含count()或__len__()方法的可切片對象。
per_page:包含在一頁中最多的條目數量。

可選參數:

orphans:在最后一頁中充許的最少條目數量,默認是0.當最后一頁條目數量小于或等于orphans時,這些條目加到本頁的上一頁中。
allow_empty_first_page:是否充許第一頁為空。如設為False且object_list為空,則拋出EmptyPage異常。

方法:

Paginator.page(number):返回一個Page對象,序號是始于1.如給出的頁號不存在,拋出InvalidPage異常。

屬性:

Paginator.num_pages:頁面總頁數
Paginator.page_range:頁面數的范圍,始于1,如[1,2,3,4]。

InvalidPage異常:

如要求的頁面無效或頁面中沒有對象,page()拋出InvalidPage異常。
PageNotAnInterger:當提供給page()的數不是整數是拋出該異常。
EmptyPage:當提供給page()的數是一個有效數,但在該頁沒有對象存在時,拋出該異常。

Page對象:

class Page(object_list,number,paginator):
一般不手工創(chuàng)建Pages,可以使用Paginator.page().

方法:

Page.has_next():如有下一頁則返回True
Page.has_previous():如有上一頁則返回True
Page.has_other_pages():如有上一頁或下一頁返回True
Page.next_page_number():返回下一頁的頁碼。不管下一頁是否存在都返回。
Page.previous_page_number():返回上一頁的頁碼。不管上一頁是否存在都返回。
Page.start_index():返回當前頁面中第一個對象的序號,序號始于1.例如:將一個包含5個對象的列表分成每頁2個對象,則第二頁的start_index()返回3.
Page.end_index():返回當前頁面中最一個對象的序號。

屬性:

Page.object_list:當前頁面中所有的對象
Page.number:當前頁面的頁碼,始于1
Page.paginator:頁面相關的Pageinator對象。

希望本文所述對大家的Python程序設計有所幫助。

相關文章

  • Python利用PyPDF2庫實現輕松提取PDF文本

    Python利用PyPDF2庫實現輕松提取PDF文本

    ython中的PyPDF2庫是一個非常有用的工具,無論您是需要分析PDF文檔中的內容還是需要在文檔中搜索特定的信息,PyPDF2都可以幫助您輕松實現這些任務,下面我們就來學習一下如何利用PyPDF2提取PDF文本吧
    2023-09-09
  • Python for循環(huán)中的陷阱詳解

    Python for循環(huán)中的陷阱詳解

    這篇文章主要給大家介紹了關于Python for循環(huán)中陷阱的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • 結束運行python的方法

    結束運行python的方法

    在本篇文章里小編給大家分享的是關于結束運行python的方法以及相關代碼,有需要的朋友們跟著學習下。
    2020-06-06
  • Python 獲得命令行參數的方法(推薦)

    Python 獲得命令行參數的方法(推薦)

    本篇將介紹python中sys, getopt模塊處理命令行參數的方法,本文給大家介紹的非常詳細,具有參考借鑒價值,需要的朋友參考下吧
    2018-01-01
  • Python常用小技巧總結

    Python常用小技巧總結

    這篇文章主要介紹了Python常用小技巧,實例總結了Python關于字典、字符串、隨機數等操作技巧,非常簡單實用,需要的朋友可以參考下
    2015-06-06
  • python 讀寫csv文件方式(創(chuàng)建,追加,覆蓋)

    python 讀寫csv文件方式(創(chuàng)建,追加,覆蓋)

    這篇文章主要介紹了python 讀寫csv文件方式(創(chuàng)建,追加,覆蓋),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python Pandas學習之Pandas數據結構詳解

    Python Pandas學習之Pandas數據結構詳解

    Pandas中一共有三種數據結構,分別為:Series、DataFrame和MultiIndex(老版本中叫Panel )。其中Series是一維數據結構,DataFrame是二維的表格型數據結構,MultiIndex是三維的數據結構。本文將詳細為大家講解這三個數據結構,需要的可以參考一下
    2022-02-02
  • 編寫Python爬蟲抓取豆瓣電影TOP100及用戶頭像的方法

    編寫Python爬蟲抓取豆瓣電影TOP100及用戶頭像的方法

    這篇文章主要介紹了編寫Python爬蟲抓取豆瓣電影TOP100及用戶頭像的方法,用到了Python的urllib和urllib2模塊,需要的朋友可以參考下
    2016-01-01
  • python cs架構實現簡單文件傳輸

    python cs架構實現簡單文件傳輸

    這篇文章主要為大家詳細介紹了python cs架構實現簡單文件傳輸,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • python中Requests請求的安裝與常見用法

    python中Requests請求的安裝與常見用法

    Requests是一常用的http請求庫,它使用python語言編寫,可以方便地發(fā)送http請求,以及方便地處理響應結果,下面這篇文章主要給大家介紹了關于python中Requests請求的安裝與常見用法的相關資料,需要的朋友可以參考下
    2022-07-07

最新評論