django内置分页功能扩展
实现自定制页码数类型
class myPaginator(Paginator):
def __init__(self,curr_page,per_page_num,*args,**kwargs):
self.curr_page=int(curr_page)
self.per_page_num=int(per_page_num) super(myPaginator,self).__init__(*args,**kwargs) def page_num(self):
curr_page=self.curr_page #当前页面
full_page=self.num_pages #总页数
per_page_num=self.per_page_num #显示页码数
half_per_page=int(per_page_num/2)
print(curr_page,full_page,per_page_num,half_per_page) if curr_page<=half_per_page:
return range(1,per_page_num+1)
elif curr_page>=(full_page-half_per_page):
return range(full_page-per_page_num,full_page)
else:
return range(curr_page-half_per_page,curr_page+half_per_page)
veiws:--------------------------------------------------------------------------------------
paginator=myPaginator(curr_page,10,root_lst,10)#(当前页码,一页中显示的页码数个数,内容,一页中的内容)
try:
posts=paginator.page(curr_page)
except EmptyPage:
posts=paginator.page(1)
except PageNotAnInteger:
posts=paginator.page(paginator.num_pages)
html:---------------------------------------------------------------------------------------------------
{% for foo in posts.object_list %} #遍历一页中的内容
<li>{{ foo.name }} - {{ foo.age }}</li> #一页中的其中一条内容
{% endfor %}
{% if posts.has_previous %} #当不存在上一页时的处理方法
<a href="/index?p={{ posts.previous_page_number }}">上一页</a>
{% else %}
<a href="#">上一页</a>
{% endif %}
{% for i in posts.paginator.page_num %} #显示的页码
{% if i == posts.number %}
<span style="display: inline-block;width:20px">{{i}}</span>
{% else %}
<a href="/index?p={{i}}" style="display: inline-block;width:20px">{{i}}</a>
{% endif %}
{% endfor %}
{% if posts.has_next %} #当不存在下一页时的处理方法
<a href="/index?p={{ posts.next_page_number }}">下一页</a>
{% else %}
<a href="#">下一页</a>
{% endif %}
django内置分页功能扩展的更多相关文章
- Django,ajax实现表格增删查改,Django内置分页功能。
1.工程目录 2.urls.py """Django_ajax URL Configuration The `urlpatterns` list routes URLs ...
- Django内置分页
一.django内置分页 from django.shortcuts import render from django.core.paginator import Paginator, EmptyP ...
- Django 内置分页的简单使用
1, 文档 https://docs.djangoproject.com/en/1.11.1/topics/pagination/ 2,视图 from django.core.paginator im ...
- Django 内置分页--Paginator类
官方文档 http://python.usyiyi.cn/django/topics/pagination.html 前端方法 http://www.tuicool.com/articles/RniU ...
- django -- 内置分页
urls.py from django.conf.urls import url from conn_oracle import views urlpatterns = [ url(r'^page/' ...
- django的内置分页
本节内容 自定义一个简单的内置分页 Django内置分页 Django内置分页扩展(继承) 自定义内置组件 自定义一个简单的内置分页 先用django自己自定制一个简单的内置分页,大概掌握内置分页的底 ...
- django内置的分页功能
django内置的分页功能 # 先导入需要查询的模型类 from game.models import Score # 导入内置的分页功能 from django.core.paginator imp ...
- Django内置权限扩展案例
当Django的内置权限无法满足需求的时候就自己扩展吧~ 背景介绍 overmind项目使用了Django内置的权限系统,Django内置权限系统基于model层做控制,新的model创建后会默认新建 ...
- Django内置的分页模块
自定义分页 未封装版: 优点:直观 缺点:代码乱,不易维护,可拓展性差 data = [] for i in range(1, 302): tmp = {"id": i, &quo ...
随机推荐
- APPlication,Session和Cookie的区别
方法 信息量大小 保存时间 应用范围 保存位置 Application 任意大小 整个应用程序的生命期 所有用户 服务器端 Session 小量,简单的数据 用户活动时间+一段延迟时间(一般为20分钟 ...
- https加载非https资源时不出现问题
老规矩,国服第一博客copy王,原文链接:https://blog.csdn.net/zhengbingmei/article/details/81325325将系统变成了https访问之后,发现部分 ...
- 公共表达式消除(UVa 12219)
紫书354页的题,将表达式树进行公共表达式消除,化为等价的图.因为需要判断某一个是否出现过,所以需要快速比较,采用哈希表的形式,将a~b与1~27一一对应,不采用0,因为0与0000是相同的,对于每一 ...
- 备忘:EBS参考链接
帮助手册查阅网址http://docs.oracle.com/cd/V46499_01/current/html/docset.html 官方 http://www.oracleappshub.co ...
- ie 浏览器缓存问题
Get请求在IE会存在缓存问题,最直接的办法 改成Post请求解决
- 计算apk包的安装之后占用空间以及运行时占用内存
1.统计结果如下 计算apk安装占用空间大小方式 为了方式apk包运行时出现缓存数据等对空间计算造成影响.应该先进行安装,然后分别计算空间变化 所有apk包安装完毕后再运行 开启两个cmd窗口 第一个 ...
- Java高级特性 第2节 java中常用的实用类(1)
一.Java API Java API即Java应用程序编程接口,他是运行库的集合,预先定义了一些接口和类,程序员可以直接调用:此外也特指API的说明文档,也称帮助文档. Java中常用的包: jav ...
- 第1章 Java语言概述--HelloWorld--环境搭建
SE学什么 第1章 Java语言概述 第2章 基本语法 第3章 数组 第4章 面向对象编程(上) 第5章 面向对象编程(中) 第6章 面向对象编程(下) 第7章 异常处理 第8章 枚举类&注解 ...
- C语言编程知识点
(1)预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题):#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 1) #defin ...
- nginx配置http强制跳转https
nginx配置http强制跳转https 网站添加了https证书后,当http方式访问网站时就会报404错误,所以需要做http到https的强制跳转设置. 一.采用nginx的rewrite方法 ...