Django2.0 分页的应用
#分页例子
from django.core.paginator import Paginator
def blog_list(request):
blog_all_list = models.Blog.objects.all()
paginator = Paginator(blog_all_list,1) #10个一页 进行分页
page_num = request.GET.get('page', 1) #获取url页面参数 没有默认显示第一页
page_of_blogs = paginator.get_page(page_num)
context = {}
context['page_of_blogs'] = page_of_blogs #得到每页的数据
context['blog_types'] = models.BlogType.objects.all()
# context['blogs_count'] =models.Blog.objects.all().count()
return render_to_response('blog_list.html', context)
#分页html代码
-- 分页页码样式和标签采用bootstrap的例子做的
-- 连接是https://v3.bootcss.com/components/#pagination
<nav aria-label="Page navigation">
<ul class="pagination">
<li>
<!-- 上一页 -->
{% if page_of_blogs.has_previous %} <!-- 是否有上一页 -->
<a href="?page={{ page_of_blogs.previous_page_number }}" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
{% else %}
<!-- <span aria-hidden="true">«</span> -->
{% endif %}
</li>
{% for page_num in page_of_blogs.paginator.page_range %}
<li><a href="?page={{ page_num }}">{{ page_num }}</a></li>
{% endfor %}
<li>
<!-- 下一页 -->
{% if page_of_blogs.has_next %} <!-- 是否有下一页 -->
<a href="?page={{ page_of_blogs.next_page_number }}" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
{% else %}
<!-- <span aria-hidden="true">»</span> -->
{% endif %}
</li>
</ul>
</nav>
#总结
向前段传递分页对象page_of_blogs
对象属性:
- page_of_blogs.num_pages 总页数 (最后一页)
- page_of_blogs.has_previous 是否有上一页
- page_of_blogs.previous_page_number 上一页页数
- page_of_blogs.has_next 是否有下一页
- page_of_blogs.next_page_number 下一页页数
判断上一页下一页代码:
-- 是否有下一页如果有就输出上一页图标
{% if page_of_blogs.has_next %}
<a href="?page={{ page_of_blogs.next_page_number }}" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
{% else %}
-- 如果没有可以输出一个空或者输出一个没有a便签的图标
<!-- <span aria-hidden="true">»</span> -->
{% endif %}
#完整代码 包括上一页 下一页 首页 尾页
<nav aria-label="Page navigation">
<ul class="pagination">
<li>
<!-- 上一页 -->
{% if page_of_blogs.has_previous %} <!-- 是否有上一页 -->
<a href="?page=1" aria-label="Previous">
<span aria-hidden="true">首页</span>
</a>
<a href="?page={{ page_of_blogs.previous_page_number }}" aria-label="Previous">
<!-- <span aria-hidden="true">«</span> -->
<span aria-hidden="true">上一页</span>
</a>
{% else %}
<!-- <a href="?page=1" aria-label="Previous">
<span aria-hidden="true">首页</span>
</a> -->
{% endif %}
</li>
{% for page_num in page_of_blogs.paginator.page_range %}
<li><a href="?page={{ page_num }}">{{ page_num }}</a></li>
{% endfor %}
<li>
<!-- 下一页 -->
{% if page_of_blogs.has_next %} <!-- 是否有下一页 -->
<a href="?page={{ page_of_blogs.next_page_number }}" aria-label="Next">
<!-- <span aria-hidden="true">»</span> -->
<span aria-hidden="true">下一页</span>
</a>
<a href="?page={{ page_of_blogs.paginator.num_pages }}" aria-label="Next">
<span aria-hidden="true">尾页</span>
</a>
{% else %}
<!-- <span aria-hidden="true">»</span> -->
<!-- <a href="?page={{ page_of_blogs.end_index }}" aria-label="Next">
<span aria-hidden="true">尾页</span>
</a> -->
{% endif %}
</li>
</ul>
</nav>
效果:

Django2.0 分页的应用的更多相关文章
- 《玩转Django2.0》读书笔记-Django建站基础
<玩转Django2.0>读书笔记-Django建站基础 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.网站的定义及组成 网站(Website)是指在因特网上根据一 ...
- Python3.7+Django2.0.4配合Mongodb打造高性能高扩展标签云存储方案
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_141 书接上回,之前有一篇文章提到了标签云系统的构建:Python3.7+jieba(结巴分词)配合Wordcloud2.js来构 ...
- django2.0+linux服务器 ,如何让自己电脑访问
这几天一直在搞这个服务器端口开放问题,来让自己电脑可以访问服务器下的django网页,今天终于弄好了~~~~~离成功又进了一步~~~~~ 1.首先,我们来开放一个linux服务器的端口(我开放了828 ...
- Django2.0中文文档
title: Django2.0中文文档 tags: Python,Django,入沐三分 grammar_cjkRuby: true --- Django2.0版本已经发布了,我们先来看一个图片 从 ...
- python3下Django2.0配置最新xadmin详解
1,打开pycharm,创建一个Django项目 2,安装Django,默认是最新版本,pip3 install -i https://pypi.douban.com/simple/ django 3 ...
- 【Python3.6+Django2.0+Xadmin2.0系列教程一】环境搭建及项目创建
由于工作需要,接触了大半年时间的Django+xadmin框架,一直没空对这块对进行相关的梳理.最近在同事的怂恿下,就在这分享下笔者的学习及工作经验吧. 好了,话不多说,下面开始进入正题: 环境需求: ...
- Django:Python3.6.2+Django2.0配置MySQL
持续学习Django中... Django默认使用的数据库是python自带的SQLlite3,但SQLlite并不适用于大型的项目,因此我将数据库换成了MySQL,下面介绍下Django如何配置数据 ...
- Django2.0版本 path与Django1.x版本url正则匹配问题
Django1.x版本url正则匹配如下: Django2.0版本正则匹配则要导入re_path模块如下:
- Python 3之Django2部署(centos7+nginx+python3+django2.0)
前置工具,系统为centos7.5,为了方便管理,可以安装宝塔免费版本 首先, yum install -y wget && wget -O install.sh http://dow ...
随机推荐
- Springmvc & Report: FineReport vs BIRT vs Jasperreport
Springmvc与jasperreport结合生成报表的一种方法 - OneThin的个人空间 - OSCHINAhttps://my.oschina.net/onethin/blog/14360 ...
- 搭建 Kafka 集群 (v2.12-2.3.0)
服务器:10.20.32.121,10.20.32.122,10.20.32.123 三台服务器都需要安装jdk.配置zookeeper.配置kafka 1.安装配置jdk1.8 [root@loca ...
- Python3基础 函数 参数为list可变类型时,使用append会影响到外部实参
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
- maven项目新检出后不编译爬坑记 及 mvn clean package报错 WagonTransporterFactory: java.util.NoSuchElementException 异常【我】
从SVN新检出一个maven项目,配置好后,发现项目无法编译(只有一个test包中的代码显示编译报错,其他所有包中的代码都不编译,也不报错), 先注释掉报错的test包中的所有内容, 用Eclipse ...
- 使用Commons math做数值计算
使用Commons math做数值计算 觉得有用的话,欢迎一起讨论相互学习~Follow Me 最近使用jmetal做多目标的时候,想用一些简单的方法求最大值最小值方差和协方差矩阵,但是原生代码真的是 ...
- 【ROC+AUC】
http://m.elecfans.com/article/736801.html https://blog.csdn.net/xyz1584172808/article/details/818392 ...
- UITableView实现行纵向颜色渐变
实现效果如下: 其实实现很简单,开始觉得使用颜色值和tableView的indexPath.row挂钩使用即可 或者使用CAGradientLayer实现渐变 最后使用alpha实现即可.需要注意的是 ...
- SourceTree 免登录跳过初始设置的方法 for Windows
SourceTree安装包下载地址: 链接: https://pan.baidu.com/s/1rOPQkfNqvLGcIeZNw0aAjw 密码: 42us nodev6.9.0 和git 链接:h ...
- Excel对某一列的数据插入处理,域名得出IP
早期都是通过Excel做数据统计,对某一列的数据插入处理. 代码功能是从A列纯域名,将域名转换为IP,从域名A列得到IP写到B列. 代码 #!/usr/bin/python #coding:utf-8 ...
- 【计算机视觉】基于局部二值相似性模式(LBSP)的运动目标检测算法
基于局部二值相似性模式(LBSP)的运动目标检测算法 kezunhai@gmail.com http://blog.csdn.net/kezunhai 本文根据论文:Improving backgro ...