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

首頁 > 編程 > Python > 正文

django實現分頁的方法

2020-02-23 01:24:14
字體:
來源:轉載
供稿:網友

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

Python代碼如下:

#!/usr/bin/env python# -*- coding: utf-8 -*-# Create your views here.from django.shortcuts import render_to_responsefrom winlog.log_dj.models import Winlogfrom django.core.paginator import Paginator,InvalidPage,EmptyPage,PageNotAnIntegerdef 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> {% endif %}{% for p in page_range %}{% ifequal p winloglist.number %}<span>{{p}}</span>{% else %}<a href="?page={{p}}" title="第{{p}}頁">{{p}}</a>{% endifequal %}{% endfor %} {% if winloglist.has_next %}<a href="?page={{ winloglist.next_page_number }}" title="下一頁">下一頁</a> {% 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()的數是一個有效數,但在該頁沒有對象存在時,拋出該異常。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 油尖旺区| 遂平县| 文水县| 六枝特区| 阜平县| 武鸣县| 云浮市| 顺义区| 广德县| 临颍县| 额敏县| 康保县| 商城县| 密山市| 芷江| 渑池县| 永和县| 河北区| 上栗县| 金秀| 林甸县| 全椒县| 海口市| 土默特左旗| 牙克石市| 金堂县| 屯昌县| 蒲江县| 荥阳市| 开平市| 东莞市| 岚皋县| 长兴县| 霞浦县| 资讯 | 监利县| 巴楚县| 郑州市| 通州区| 台东县| 色达县|