最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django實(shí)現(xiàn)分頁的方法

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

本文實(shí)例講述了django實(shí)現(xiàn)分頁的方法。分享給大家供大家參考。具體如下:

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對(duì)象:

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

必須提供的參數(shù):

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

可選參數(shù):

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

方法:

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

屬性:

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

InvalidPage異常:

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

Page對(duì)象:

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():返回當(dāng)前頁面中第一個(gè)對(duì)象的序號(hào),序號(hào)始于1.例如:將一個(gè)包含5個(gè)對(duì)象的列表分成每頁2個(gè)對(duì)象,則第二頁的start_index()返回3.
Page.end_index():返回當(dāng)前頁面中最一個(gè)對(duì)象的序號(hào)。

屬性:

Page.object_list:當(dāng)前頁面中所有的對(duì)象
Page.number:當(dāng)前頁面的頁碼,始于1
Page.paginator:頁面相關(guān)的Pageinator對(duì)象。

希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 詳解?python?logging日志模塊

    詳解?python?logging日志模塊

    這篇文章主要介紹了詳解?python?logging日志模塊,記錄日志最簡(jiǎn)單的方法就是在你想要記錄的地方加上一句?print?,?我相信無論是新手還是老鳥都經(jīng)常這么干。在簡(jiǎn)單的代碼中或者小型項(xiàng)目中這么干一點(diǎn)問題都沒有,需要的朋友可以參考下
    2022-01-01
  • 關(guān)于DataFrame數(shù)據(jù)的查詢和編輯

    關(guān)于DataFrame數(shù)據(jù)的查詢和編輯

    在使用pandas處理DataFrame時(shí),可通過列索引標(biāo)簽獲取列數(shù)據(jù),行數(shù)據(jù)的獲取可以利用行索引或位置切片,如iloc和loc方法,增加數(shù)據(jù)時(shí),可通過append方法增加行,直接賦值增加列,刪除數(shù)據(jù)則通過drop方法,通過設(shè)置axis參數(shù)確定是刪除行還是列
    2024-09-09
  • 對(duì)django views中 request, response的常用操作詳解

    對(duì)django views中 request, response的常用操作詳解

    今天小編就為大家分享一篇對(duì)django views中 request, response的常用操作詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python實(shí)現(xiàn)蒙特卡羅模擬法的實(shí)踐

    python實(shí)現(xiàn)蒙特卡羅模擬法的實(shí)踐

    ?蒙特卡洛就是產(chǎn)生隨機(jī)變量,帶入模型算的結(jié)果,尋優(yōu)方面,本文主要介紹了python 蒙特卡羅模擬法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Python進(jìn)階語法之類的繼承

    Python進(jìn)階語法之類的繼承

    這篇文章主要為大家介紹了Python類的繼承,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Python中的縮進(jìn)是什么意思

    Python中的縮進(jìn)是什么意思

    在Python中,縮進(jìn)是指在代碼中使用空格或制表符來表示代碼塊的層次結(jié)構(gòu),Python使用縮進(jìn)作為語法的一部分,以定義代碼的邏輯結(jié)構(gòu)和代碼塊的范圍,本文介紹Python中的縮進(jìn)是什么意思,感興趣的朋友一起看看吧
    2024-01-01
  • 使用Python完成15位18位身份證的互轉(zhuǎn)功能

    使用Python完成15位18位身份證的互轉(zhuǎn)功能

    這篇文章主要介紹了使用Python完成15位18位身份證的互轉(zhuǎn)功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 10分鐘快速入門Pandas庫

    10分鐘快速入門Pandas庫

    pandas?是基于NumPy?的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的,這篇文章主要介紹了10分鐘快速入門Pandas庫,重點(diǎn)介紹pandas常見使用方法,結(jié)合實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Python?pandas中apply函數(shù)簡(jiǎn)介以及用法詳解

    Python?pandas中apply函數(shù)簡(jiǎn)介以及用法詳解

    apply()函數(shù)是pandas里面所有函數(shù)中自由度最高的函數(shù), apply()函數(shù)的參數(shù)是一個(gè)函數(shù)指針,這里可以使用lambda表達(dá)式幫助簡(jiǎn)化代碼,下面這篇文章主要給大家介紹了關(guān)于Python?pandas中apply函數(shù)簡(jiǎn)介以及用法的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • 利用Pyhton中的requests包進(jìn)行網(wǎng)頁訪問測(cè)試的方法

    利用Pyhton中的requests包進(jìn)行網(wǎng)頁訪問測(cè)試的方法

    今天小編就為大家分享一篇利用Pyhton中的requests包進(jìn)行網(wǎng)頁訪問測(cè)試的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評(píng)論

黄骅市| 剑阁县| 正安县| 张北县| 青河县| 墨竹工卡县| 永嘉县| 古浪县| 贵定县| 丹凤县| 古交市| 剑川县| 故城县| 洛扎县| 紫阳县| 甘孜县| 高平市| 遂宁市| 黄龙县| 常州市| 芦溪县| 安阳县| 襄城县| 得荣县| 通渭县| 桂平市| 色达县| 思南县| 义马市| 扶绥县| 阳新县| 绍兴市| 北京市| 宽城| 怀远县| 临沭县| 鄂托克旗| 太原市| 屯昌县| 蓝山县| 大埔区|