python---django中自带分页类使用
请先看在学习tornado时,写的自定义分页类:思路一致;
1.基础使用:
后台数据获取:
from django.core.paginator import Paginator,PageNotAnInteger,EmptyPage#错误判断
List_info = []
for i in range():
List_info.append("news%d"%i) def get_page(req):
current_page = req.GET.get('p')
paginator = Paginator(List_info,10) #传入总数据和每页显示的数据
#含有属性:
#per_page:每页显示条数上面的10
#count数据总数
#num_pages:总页数
#page_range:总页数索引范围
#page:page对象
try:
posts = paginator.page(current_page)
#page对象含有方法:
#has_next:判断是否有下一页
#has_previous:判断是否有上一页
#next_page_number:下一页页码
#previous_page_number:上一页页码
#number:当前页 注意:这个是属性,其他是方法,需要加上()
#paginator:paginator对象
except PageNotAnInteger:
posts = paginator.page()
except EmptyPage:
posts = paginator.page(paginator.num_pages) #num_pages数总页数,最后一页 return render(req,'get_page.html',{'posts':posts})
前端代码:
<div class="content">
{% for item in posts %}
<p>{{ item }}</p>
{% endfor %}
</div>
<div>
<span>
{% if posts.has_previous %} #模板中调用函数不要()
<a href="/page.html?p={{ posts.previous_page_number }}">prev</a>
{% endif %}
<span class="current">
Page {{ posts.number }} of {{ posts.paginator.num_pages }}
</span>
{% if posts.has_next %}
<a href="/page.html?p={{ posts.next_page_number }}">next</a>
{% endif %}
</span>
</div>
2.扩展内置分页:
类修改:
from django.core.paginator import Paginator class CustomPagimator(Paginator):
def __init__(self,current_page,max_page_num,*args,**kwargs):
self.current_page = int(current_page) #当前页 #自定义变量
self.max_page_num = max_page_num #可以显示多少页 #自定义变量
super(CustomPagimator,self).__init__(*args,**kwargs) def page_num_range(self):
# self.num_pages 总页数
part_num = int(self.max_page_num/)
if self.num_pages <= self.max_page_num: #先判断总页数和运行显示的页数大小
return range(, self.num_pages + )
if self.current_page <= part_num: #再取半分析
return range(,self.max_page_num+)
elif self.current_page+part_num>= self.num_pages:
return range(self.num_pages-self.max_page_num,self.num_pages+)
else:
return range(self.current_page - part_num, self.current_page + part_num + )
类调用:
List_info = []
for i in range():
List_info.append("news%d"%i)
from 模块.自定义分页类文件 import 自定义分页类CustomPagimator
def get_page(req):
current_page = req.GET.get('p')
paginator = CustomPagimator(current_page=current_page, max_page_num=,object_list=List_info,per_page=) #传入总数据和每页显示的数据
try:
posts = paginator.page(current_page)
except PageNotAnInteger:
posts = paginator.page()
except EmptyPage:
posts = paginator.page(paginator.num_pages) #num_pages数总页数,最后一页 page_html = paginator.page_num_range() return render(req,'get_page.html',{'posts':posts,"page_html":page_html})
前端使用:
<div>
<span>
{% if posts.has_previous %}
<a href="/page.html?p={{ posts.previous_page_number }}">prev</a>
{% endif %}
<span class="page">
{% for i in page_html %}
<a href="/page.html?p={{ i }}">{{ i }}</a>
{% endfor %}
</span>
<span class="current">
Page {{ posts.number }} of {{ posts.paginator.num_pages }}
</span>
{% if posts.has_next %}
<a href="/page.html?p={{ posts.next_page_number }}">next</a>
{% endif %}
</span>
</div>
python---django中自带分页类使用的更多相关文章
- Yii2中自带分页类实现分页
1.首先写控制器层 先引用pagination类 use yii\data\Pagination; 写自己的方法: function actionFenye(){ $data = Fie ...
- django上课笔记2-视图CBV-ORM补充-Django的自带分页-Django的自定义分页
一.视图CBV 1.urls url(r'^login.html$', views.Login.as_view()), 2.views from django.views import View cl ...
- Python Django中QQ邮箱授权码问题
Python Django中QQ邮箱授权码问题 系统及软件版本如下: Ubuntu Kylin 16.04 Python 3.5.1 Django 1.9.7 PyCharm Community Ed ...
- RSA算法在Python Django中的简单应用
说明 RSA算法是当今使用最广泛,安全度最高的加密算法. • RSA算法的安全性理论基础 [引]根据百科介绍,对极大整数做因数分解的难度决定了RSA算法的可靠性.换言之,对一极大整数做因数分解愈困难, ...
- python django中使用sqlite3数据库 存储二进制数据ByteArray
在python中使用sqlite3数据库存储二进制流数据ByteArray,在django使用sqlite3数据库时,有时候也要注意最好使用二进制流ByteArray插入字符串. 使用ByteArra ...
- django中如何实现分页功能
1.在html页面中导入js文件和css文件 <link rel="stylesheet" href="../../../static/css/jquery.pag ...
- php中的实用分页类
<table width="100%" border="1" cellpadding="0" cellspacing="0& ...
- Python Django 中的STATIC_URL 设置和使用解析
使用Django静态设置时,遇到很多问题,经过艰苦的Baidu, stack overflow, Django原档阅读,终于把静态图片给搞出来了.特记录下来. 关键的概念:Django中,静态资源的存 ...
- python Django中的cookie和session
目录 Cookie 1.1获取Cookie 1.2设置Cookie Session 1.数据库Session 2.缓存Session 3.文件Session 4.缓存+数据库Session Cooki ...
随机推荐
- SpringMVC RestTemplate的几种请求调用
转载:https://blog.csdn.net/ThinkingLink/article/details/45366777 1.用统一的方法模板进行四种请求:POST,PUT,DELETE,GET ...
- 第一次软件工程作业(One who wants to wear the crown, Bears the crown.)
回顾你过去将近3年的学习经历 1.当初报考的时候,是真正的喜欢计算机这个专业吗? 报考时对于计算机专业只能说不讨厌,也可以认为对其没有任何的感觉. 有一个比我自己还注意我未来的老妈,我的报考只能通过一 ...
- CM005-逆向分析过程(上篇)
前言 005,都说比较变态,很多人给放过去了,但是我还是决定上了它,既然变态就分两篇,上篇先实际说流程,到底应该怎么上它,下篇会告诉逆向分析的过程和方法 准备 [环境和工具] win7/xp虚拟机环境 ...
- lambda表达式,map函数
lambda只是一个表达式,不需要定义函数,故也是匿名函数,用法为:lambda 参数:表达式. x=5 list1=[2,3,4] list2=[10,20,30] s=lambda x:x**3 ...
- 2018软工实践—Beta冲刺(7)
队名 火箭少男100 组长博客 林燊大哥 作业博客 Beta 冲鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调组内工作 整体软件测试 展示GitHub当日代码/文档签入记录(组 ...
- Sprint report
Sprint report 一.需求分析:随着在校大学生人数的不断增加,许多高校出现了许多个校区并存的局面,并且校区之间的地理位置跨度非常大,给高校选课带来了很大的不方便,数据处理手工操作,工作量大, ...
- WordCount 程序的实现
WordCount是一个常见的工具,它能统计文本文件的字数.单词数和行数.在本次项目中,要求写一个命令行程序,模仿已有的WordCount.exe的功能,并加以扩充,统计出某程序设计语言源文件的字符数 ...
- Software-Defined Networking:A Comprehensive Survey--Day4
V. ONGOING RESEARCH EFFORTS AND CHALLENGES 这一节主要介绍了对SDN潜力的发挥有着重要推动作用的一些研究成果. A. Switch Designs 目前Ope ...
- 第十一周(11.24-12.01)----final评论II
1. Nice 项目:约跑软件 这款app非常实用.从性能上讲,这款软件基于Android开发.使用者只要注册就能实用,操作简便.在功能上,这款软件不仅为两个有意愿同时跑步的人牵线,为跑步的人提供跑 ...
- 侧边导航栏css示例
效果展示: html: <div class="sidebar"> <ul> <li>优先级 <ul> <li>< ...