国产探花免费观看_亚洲丰满少妇自慰呻吟_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()的數是一個有效數,但在該頁沒有對象存在時,拋出該異常。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荔波县| 广灵县| 金秀| 息烽县| 福贡县| 高台县| 新沂市| 年辖:市辖区| 定襄县| 安图县| 宝应县| 长沙县| 河西区| 衡东县| 勃利县| 钟山县| 望江县| 武邑县| 邛崃市| 东丽区| 建平县| 潜江市| 霍州市| 顺昌县| 遵义县| 蓝田县| 马尔康县| 西城区| 准格尔旗| 高安市| 安国市| 东至县| 张家港市| 安吉县| 巧家县| 新密市| 普安县| 嵊泗县| 余江县| 海口市| 马山县|