python实现分页插件
class Pages:
def __init__(self, current_page, data_count, per_page_count=10, pager_num=7):#pager_num 这是页码
self.current_page = current_page
self.data_count = data_count
self.per_page_count = per_page_count
self.pager_num = pager_num
pass @property
def start(self):
return (self.current_page-1) * self.per_page_count @property
def end(self):
return self.current_page * self.per_page_count @property
def all_count(self):
v, s = divmod(self.data_count, self.per_page_count)
if s > 0:
v += 1
return v def page_str(self, base_url):
pg = []
if self.all_count < self.pager_num:
start_index = 1
ent_index = self.all_count
else:
if self.current_page < (self.pager_num + 1) / 2: # 最前面的数,当小于6时会出现的一种情况
start_index = 1
ent_index = self.pager_num
elif self.current_page + 5 > self.all_count: # 最后面的数,当加上5大于总页数时会出现的一种情况
start_index = self.all_count - self.pager_num + 1
ent_index = self.all_count
else:
start_index = self.current_page - ((self.pager_num - 1) / 2)
ent_index = self.current_page + ((self.pager_num - 1) / 2) pre_page = "<a href='%s?p=%s' class='page'>上一页</a>" % \
(base_url, self.current_page - 1 if self.current_page > 1 else 1) for a in range(int(start_index), int(ent_index)+1):
if a == self.current_page:
temp = "<a href='%s?p=%s' class='page active'>%s</a>" % (base_url, a, a)
pg.append(temp)
else:
temp = "<a href='%s?p=%s' class='page'>%s</a>" % (base_url, a, a)
pg.append(temp) next_page = "<a href='%s?p=%s' class='page'>下一页</a>" % \
(base_url, self.current_page + 1 if self.current_page < self.all_count else self.all_count) jump = """
<input id="jump" type="text"><button onclick="jump(this)">跳转</button>
<script>
function jump(node){
location.href= '%s?p='+ $("#jump").val()
}
</script>
""" % base_url
page_str = pre_page+"".join(pg)+next_page+jump
return page_str
使用例子:
def show_vedio(request):
current_page = request.GET.get("p", 1)
current_page = int(current_page)
page_obj = Pages(current_page, len(LIST))
lists = LIST[page_obj.start:page_obj.end] return render(request, "blogs/internet/show_video.html", {"list": lists, "page": page_obj.page_str("/blogs/video/")})
前端:
{{ "分页 "|defined_filter:"您会做 了吗!" }}
<ul>
{% for i in list %}
<li>{{ i }}</li>
{% endfor %} </ul> {{ page|safe }}
python实现分页插件的更多相关文章
- Jquery前端分页插件pagination同步加载和异步加载
上一篇文章介绍了Jquery前端分页插件pagination的基本使用方法和使用案例,大致原理就是一次性加载所有的数据再分页.https://www.jianshu.com/p/a1b8b1db025 ...
- Jquery前端分页插件pagination使用
插件描述:JqueryPagination是一个轻量级的jquery分页插件.只需几个简单的配置就可以生成分页控件.并且支持ajax获取数据,自定义请求参数,提供多种方法,事件和回调函数,功能全面的分 ...
- Flask学习之旅--分页功能:分别使用 flask--pagination 和分页插件 layPage
一.前言 现在开发一个网站,分页是一个很常见的功能了,尤其是当数据达到一定量的时候,如果都显示在页面上,会造成页面过长而影响用户体验,除此之外,还可能出现加载过慢等问题.因此,分页就很有必要了. 分页 ...
- MVC如何使用开源分页插件shenniu.pager.js
最近比较忙,前期忙公司手机端接口项目,各种开发+调试+发布现在几乎上线无问题了:虽然公司项目忙不过在期间抽空做了两件个人觉得有意义的事情,一者使用aspnetcore开发了个人线上项目(要说线上其实只 ...
- 分页插件--根据Bootstrap Paginator改写的js插件
刚刚出来实习,之前实习的公司有一个分页插件,和后端的数据字典约定好了的,基本上是看不到内部是怎么实现的,新公司是做WPF的,好像对于ASP.NET的东西不多,导师扔了一个小系统给我和另一个同事,指了两 ...
- [原创]jquery+css3打造一款ajax分页插件
最近公司的项目将好多分页改成了ajax的前台分页以前写的分页插件就不好用了,遂重写一个 支持IE6+,但没有动画效果如果没有硬需求,个人认为没必要多写js让动画在这些浏览器中实现css3的动画本来就是 ...
- 一个强大的jquery分页插件
点击这里查看效果 这个分页插件使用方便,引用keleyidivpager.js和keleyidivpager.css文件,然后在htm(或者php,aspx,jsp等)页面中对分页总数,参数名,前缀后 ...
- 【SSM 5】Mybatis分页插件的使用
一.添加maven依赖项 <span style="font-family:KaiTi_GB2312;font-size:18px;"><dependency&g ...
- Mybatis分页插件
mybatis配置 <!-- mybatis分页插件 --> <bean id="pagehelper" class="com.github.pageh ...
随机推荐
- 【xsy1130】tree 树形dp+期望dp
题目写得不清不楚的... 题目大意:给你一棵$n$个节点的树,你会随机选择其中一个点作为根,随后随机每个点深度遍历其孩子的顺序. 下面给你一个点集$S$,问你遍历完$S$中所有点的期望时间,点集S中的 ...
- [转]php实时输出内容
b开发中有没有碰到需要适时的将结果输出到浏览器页面而不刷新整个页面的需求呢?当你在处理一个过程需要耗时很长,但你又需要适时的知道程序当前的处理状况的时候,该怎么办呢?下面就分享一下如何使用php及时的 ...
- GitLab 修改主机名,更换 IP 配置,配置 SMTP
# find / -name gitlab.yml /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml /var/opt/gitla ...
- Android之密码的显示与隐藏
很多应用都是显示与隐藏密码的功能. 之前的项目都没这个功能要求,也没有专门研究这个.最近项目有加这个功能,我这里也刚好整理一下. 我的思路是设置EditText的InputType.代码如下: if ...
- Disruptor多个消费者不重复处理生产者发送过来的消息
1.定义事件事件(Event)就是通过 Disruptor 进行交换的数据类型. package com.ljq.disruptor; import java.io.Serializable; /** ...
- 【转】kafka集群搭建
转:http://www.cnblogs.com/luotianshuai/p/5206662.html Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否 ...
- XSS事件(一)
前言 最近做的一个项目因为安全审计需要,需要做安全改造.其中自然就包括XSS和CSRF漏洞安全整改.关于这两个网络安全漏洞的详细说明,可以参照我本篇博客最后的参考链接.当然,我这里并不是想写一篇安 ...
- UVA 227 Puzzle(基础字符串处理)
题目链接: https://cn.vjudge.net/problem/UVA-227 /* 问题 输入一个5*5的方格,其中有一些字母填充,还有一个空白位置,输入一连串 的指令,如果指令合法,能够得 ...
- MVC用非Entity Framework将数据显示于视图
学习此篇之前,先看看<DataTable数据显示于MVC应用程序>http://www.cnblogs.com/insus/p/3361182.html 那是将DataTable显示于MV ...
- Extjs4处理后台json数据中日期和时间的方法
当ASP.NET后台使用JavaScriptSerializer这个组件将对象序列化为json,或者使用ScriptMethod特性的json [ScriptMethod(ResponseFormat ...