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 ...
随机推荐
- springboot笔记1(转载于puresmile)
构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...
- mysql in 查询参数化
mysql查询语句where条件in mysql查询语句where条件in 正常情况需要查询的语句:select *from temp where id in ('1','2','3','4','5' ...
- Angular4.0引入第三方框架,eg: bootstrap、jquery
最近学习angular4.0,在练习是需要使用jquery和bootstrap.但是查阅了,大多数都是angular2的方法,或者是angular4.0的方法但是不准确.花了一些时间终于捣腾出来了,把 ...
- select添加option
本文介绍select添加option的两种方法 1.使用selectObject.add(option,before)方法,其中 option为要添加选项元素.必需是 option 或 optgrou ...
- 文献--A Survey on Server-side Approaches to Securing Web Applications
Q:1.如何定义XSS攻击? 2.taint-based 啥意思? 3. second-order vulnerabilities 啥意思?
- JavaScript 实现打印操作
一.打印当前页面指定元素中的内容 方式一:直接使用window.print(); (1)首先获得元素的html内容(这里建议如果有样式最好是用内联样式的方式) var newstr = documen ...
- 学习笔记(二)--Lucene简介
Lucene简介 最受欢迎的java开源全文搜索引擎开发工具包.提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言).Lucene的目的是为软件开发人员提供一个简单易用的工具包, ...
- ex_BSGS
//author Eterna #define Hello the_cruel_world! #pragma GCC optimize(2) #include<iostream> #inc ...
- QT4.8.6-VS2010开发环境配置
目录 1.下载软件 2.环境配置 3.VAssistX配置 1.下载软件 VS2010下载地址:链接: https://pan.baidu.com/s/1gvPjZWBtSEwW37H1xf2vbA ...
- Jekins学习
1.Windows 安装入门 https://blog.csdn.net/u011541946/article/details/78003772 PS:坑1,https问题 坑2,offline ...