django自带的分页虽然挺好,但是就想自己弄个通用的

自己写了个分页的类,用的是python,   其他语言改下语法就能用了.

#定义好类.
class pagemanage:
def __init__(self,page_each,data_count,cur_page,pageint,url):
''' :param page_each: 每次显示多少页
:param data_count: 数据总条数
:param cur_page: 当前页面数
:param pageint: 每一页显示的数据条数
:param url:渲染地址
'''
self.page_each=page_each
self.cur_page = cur_page
self.pageint = pageint
self.get_url=url
self.data_count=data_count @property#获取总共的页数
def get_countpage(self):
a, v = divmod(self.data_count, self.pageint)
self.page_count = a # page_count总的页数 if v != 0:
self.page_count = a + 1
if self.cur_page >self.page_count:
self.cur_page=self.page_count
return self.page_count # 获取每次页面显示的区间
@property
def get_interval_page(self):
page_count = self.get_countpage
if self.page_each>page_count:
start=1
end=page_count
return [start, end]
elif self.cur_page<self.page_each/2:
start = 1
end=self.page_each
return [start, end]
elif self.cur_page>page_count-self.page_each/2:
start=page_count-self.page_each+1
end=page_count
return [start, end]
else:
if self.page_each%2==0:
start=self.cur_page-self.page_each/2+1
end=self.cur_page+self.page_each/2 else:
start = self.cur_page - self.page_each / 2 #python3请改成 '//'
end = self.cur_page + self.page_each / 2 #python3请改成 '//'
return [start,end] def get_pageint(self): start = (self.cur_page - 1) * self.pageint end = (self.cur_page) * self.pageint page_start_end=(start,end) return page_start_end #将分页渲染成html标签 字符串 def getpager(self): page_list = [] if self.cur_page == 1: page_list.append("<a href=''>上一页</a>") else: page_list.append("<a href='/%s/?p=%s'>上一页</a>" % (self.get_url,self.cur_page - 1)) for i in range(self.get_interval_page[0], self.get_interval_page[1]+1): if i == self.cur_page: page_list.append("<a style='background-color: black ' href='/%s/?p=%s'>%s</a>" % (self.get_url,i, i)) continue page_list.append("<a href='/%s/?p=%s'>%s</a>" % (self.get_url,i, i)) if self.cur_page == self.get_countpage: page_list.append("<a href=''>下一页</a>") else: page_list.append("<a href='/%s/?p=%s'>下一页</a>" % (self.get_url,self.cur_page + 1)) pager = "".join(page_list) return pager

使用---------views

def xxxx(req):
cur_page = int(req.GET.get("p", 1)) # 默认为1,获取当前页码
data_count = models.Student.objects.all().count()#数据的总数
p = pagemanage(2,data_count,cur_page, 10, "mmm/getstudentdata")#使用自己写好的分页类
pager = p.getpager()#获取最后返回的字符串,就是包含标签的字符串
pageint = p.get_pageint()#获取到本次的显示页的起始数据和结束数据 data = models.Student.objects.all()[pageint[0]:pageint[1]]#获取显示的数据 return render(req, 'studentm.html', {'data': data, 'page_set': pager})

html

  <table>

 {% for i in data %}//循环显示每条内容
<tr>
<td>{{ i.id }}</td>
<td>{{ i.name }}</td>
<td>{{ i.cls.name }}</td>
<td><a class="modify" href="/mmm/modify?nid={{ i.id }}">编辑</a>|<a href="javascript:void(0)">删除</a></td>
</tr>
{% endfor %}
</table> <div class="pagemode">//显示分页
{{ page_set|safe }}
</div>

简单实用的分页类-python的更多相关文章

  1. PHP简单漂亮的分页类

    本文介绍一款原生的PHP分页类,分页样式有点类似bootstrap. <?php /* * ********************************************* * @类名 ...

  2. 一个简单的php分页类代码(转载)

    入门级php分页类 原文地址:http://www.xfcodes.com/php/fenye/3608.htm 时间:2015-12-16 20:52:00来源:网络 php分页类. 复制代码代码如 ...

  3. THinkPHP简单漂亮的分页类 DownLoad

    PHP include_once("config.php"); require_once('page.class.php'); //分页类 $showrow = 10; //一页显 ...

  4. 简单实用的日志类CLog (Python版)

    #coding: utf-8 import time ''' /***************************************************************** Fu ...

  5. 一个简单的CI分页类

    [php] view plaincopy <span style="font-size:16px;">/** * * 关于 页码有效性的判断需要加在 控制器中判断,即当 ...

  6. php简单实用的调试工具类

    <?php /* * 调试类 */ class Common_Debug { //打开错误报告 public static function showError($debug = true) { ...

  7. 简单实用的原生PHP分页类

    一款简单实用的原生PHP分页类,分页按钮样式简洁美观,页码多的时候显示“...”,也是挺多网站用的效果 核心分页代码 include_once("config.php"); req ...

  8. C#反射实现 C# 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C# ADO.NET的SqlDataReader对象,判断是否包含指定字段 页面中添加锚点的几种方式 .net 简单实用Log4net(多个日志配置文件) C# 常用小点

    C#反射实现   一.反射概念: 1.概念: 反射,通俗的讲就是我们在只知道一个对象的内部而不了解内部结构的情况下,通过反射这个技术可以使我们明确这个对象的内部实现. 在.NET中,反射是重要的机制, ...

  9. 简单实用的php分页函数代码

    一个简单实用的php分页函数,分页导航中可以默认为空,在函数内部再设置本页URL. 代码: <?php /** * 分页 * @category 功能 * @param $totle:信息总数 ...

随机推荐

  1. 直接借鉴的 ids拼接

    function _getIds(selectedIds, targetType){ var ids = ""; var $box = targetType == "di ...

  2. 【转】Spring-boot 字符集设置 解决乱码方案

    使用spring-boot开发时候,有时候程序没事,往往不经意会造成中文到前端变成乱码(????这样情况) 下面给出spring-boot项目统一字符集设置方案: 1.Spring Boot修改编码方 ...

  3. 由于找不到 opencv_world320.dll,无法继续执行代

    首先找到自己软件安装(解压)的路径openCV (安装(解压)目录\opencv\build\x64\vc14\bin) 我的安装(解压)目录是:F:\OpenCV\Three320\opencv\b ...

  4. 关于eclipse项目创建maven项目目录不正常的解决方案

    最近学习ssh和maven,遇到了很多问题····首先一个很基础的问题就是我搭建的maven项目目录和教程上的不一样.我的目录之前是这样的: 而教程里的是这样的========> 因为是跟着视频 ...

  5. 解决使用C/C++配置ODBC链接中文显示为问号(?)的问题

    使用VS2015中使用OBDC连接到数据库时,数据库可以正常显示,但是在VS上输出是乱码,如图: 在数据库中course表显示: vs程序结果显示: 查找原因,因为char默认读ascii型,只读到1 ...

  6. s2第二章深入c#类型

    S2第二章预习笔记  深入c# 数据类型 常用类型      java     c#     举例 整形          int     int     年龄 浮点型        float    ...

  7. NumPy 基础用法

    NumPy 是高性能科学计算和数据分析的基础包. 它是 pandas 等其他各种工具的基础. 主要功能: ndarray 一个多维数组结构, 高效且节省空间 无需循环对整组数据进行快速运算的数学函数 ...

  8. mongodb分片balance

    查看balance状态 mongos> sh.getBalancerState()true   通过balance锁查看balance活动 如果state是2,表示balance锁已经被获取 m ...

  9. 第十一章 IO流

    11.IO流 11.1 java.io.File类的使用 1课时 11.2 IO原理及流的分类 1课时 11.3 节点流(或文件流) 1课时 11.4 缓冲流 1课时 11.5 转换流 1课时 11. ...

  10. 高性能网络编程之IO和NIO阻塞分析

    一.内容 1.阻塞和非阻塞是什么? 2.传统IO模型,他存在哪些阻塞点 3.NIO模型 4.对比总结 1.阻塞和非阻塞是什么? 阻塞:做某件事情,直到完成,除非超时,如果没有完成,继续等待. 非阻塞: ...