DJANGO之分页
2016-01-30 17:52
246 查看
#coding:utf8 #!/usr/bin/env python __author__ = 'sws' from django.utils.html import mark_safe class PagiInfo: ''' 分页信息 确定每页有几条信息 per_item 确定每页的显示开始的信息序号,以及结束序号 self.Page:当前页 self.Total_count:信息总数目 self.Per_item:每页显示的数目 默认为5 ''' def __init__(self, page, total_count, per_item=5): self.Page = page self.Total_count = total_count self.Per_item = per_item @property def start(self): ''' 返回开始的序号 ''' return self.Per_item*(self.Page-1) @property def end(self): ''' 返回结束的序号 ''' return self.Per_item*(self.Page) @property def total_pages(self): ''' 返回总页数 ''' pages = divmod(self.Total_count,self.Per_item) if pages[1] != 0: total_page = pages[0]+1 else: total_page = pages[0] return total_page def Paginor(page, total_pages): ''' :param page: 当前页 :param total_pages: 总页数 :return: 分页字符串 ''' if total_pages < 9: start = 0; end = total_pages else: if page < 5: start = 0 end = 10 else: start = page - 5 if page + 4 > total_pages: end = total_pages else: end = page+4 pa_html = ['<a href=/index/1>首页</a>'] if page <= 1: pa_html.append('<a href=#>前一页</a>') else: pa_html.append('<a href=/index/%d>前一页</a>' %(page-1)) for i in range(start+1,end+1): temp = '<a href=/index/%d>%d</a>' %(i, i) pa_html.append(temp) if page >= total_pages: pa_html.append('<a href=#>后一页</a>') else: pa_html.append('<a href=/index/%d>后一页</a>' %(page+1)) pa_html.append('<a href=/index/%d>尾页</a>' %(total_pages+1)) page_string=mark_safe(' '.join(pa_html)) return page_string
相关文章推荐
- django学习笔记(三)模型
- 转发django 1.6 markdown的使用
- Analysis of algorithms: introduction
- 全新mac os建django开发环境
- 图片由小图放大裁剪至全屏显示大图,Google Photos 点击图片预览的效果
- 高德地图去掉logo
- 浅析Google Guava中concurrent下的Monitor和Future特性
- go 用结构解析XML
- GO 的单元测试
- GO面向对象:method的继承和重写
- GoogleAPI Adwords Ad Scheduling
- GO面向对象:method
- GoogleAPI Adwords Budget
- Google File System翻译(转)
- Django学习笔记(模型对照表)
- Django 学习记录
- Mo's Algorithm
- 用django-tinymce搞个富文本编辑器
- go语言struct
- 2016美国数学建模MCM c题 翻译:Goodgrant基金会的挑战