首页 技术 正文
技术 2022年11月15日
0 收藏 319 点赞 2,598 浏览 2371 个字

django 分页显示页码

views.py

显示11页码if 总页数() <
起始位置 - 10总页数else
总页数 >
IF 当前页 小于
起始位置 结束页 IF 当前页 大于
IF 如果结束页 > 总页数
起始值 - 总页数
else
起始值 - 结束页 +
#!/usr/bin/env python
#_*_coding:utf-8_*_from django.shortcuts import render,render_to_response,redirect,HttpResponse
from app01 import models
from django.utils.safestring import mark_safe
import common
import html_helper
# Create your views here.def index(request,page): page = common.try_int(page)
hostcount = models.Host.objects.all().count() # 获取数据库的总共条数 pageobj = html_helper.PageInfo(page,hostcount) hostall = models.Host.objects.all()[pageobj.start:pageobj.end] # 一页显示的条数 page_html = html_helper.Pager(page,pageobj.all_page_count()) ret = {'data':hostall,'count':hostcount,'page_ret':page_html}
return render_to_response('index.html',ret)

html_helper.py

#!/usr/bin/env python
#_*_coding:utf-8_*_
from django.utils.safestring import mark_safeclass PageInfo(object):
def __init__(self,current_page,all_page_count,per_item=):
self.CurrentPage = current_page
self.AllCount = all_page_count
self.PerItem = per_item @property
def start(self):
return (self.CurrentPage - ) * self.PerItem @property
def end(self):
return self.CurrentPage * self.PerItem def all_page_count(self):
'''
tempcountpage = divmod(hostcount,pageint)
if tempcountpage[] == :
all_page_count = tempcountpage[]
else:
all_page_count = tempcountpage[] + '''
tempcountpage = divmod(self.AllCount,self.PerItem)
if tempcountpage[] == :
all_page_count = tempcountpage[]
else:
all_page_count = tempcountpage[] + return all_page_countdef Pager(page,all_page_count):
# 定义一个列表,然后循环总页数,追加到列表中,
page_html = [] # 首页
first_page = '<a href="/index/%d" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >首页</a>' % ()
page_html.append(first_page) # 上一页
if page <= :
up_page = '<a href="/index/%d" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >上一页</a>' % ()
else:
up_page = '<a href="/index/%d" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >上一页</a>' % (page - ) page_html.append(up_page) # 显示1。。。最后的页数
if all_page_count < :
begin_page =
end_page = all_page_count
else:
if page < :
begin_page =
end_page =
else:
if page + > all_page_count:
begin_page = page -
end_page = all_page_count
else:
begin_page = page -
end_page = page + for i in range(begin_page,end_page):
if page == i + :
temp_html = '<a class="selected" href="/index/%d" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >[%d]</a>' % (i + , i + )
else:
temp_html = '<a href="/index/%d" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >[%d]</a>' % (i + , i + ) page_html.append(temp_html) # 下一页
if page >= all_page_count:
next_page = '<a href="/index/%d" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >[下一页]</a>' % (all_page_count)
else:
next_page = '<a href="/index/%d" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >[下一页]</a>' % (page + )
page_html.append(next_page) # 尾页
end_page = '<a href="/index/%d" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >[尾页]</a>' % (all_page_count)
page_html.append(end_page) # 使用mark_safe 可让html显示返回的a标签。join 把列表取出用空格连接
page_html = mark_safe(' '.join(page_html)) return page_html
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,954
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,479
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,291
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,108
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,740
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,774