Django----列表分页(使用Django的分页组件)
目的:是为了实现列表分页

1、定制URL
http://127.0.0.1:8000/blog/get_article?page=3
之前定制URL是在url后增加了/id,这次使用参数的方式
def get_article(request):
page=request.GET.get('page');---------->使用GET.get方法来获取URL后的page参数的值,同理,如果将来url后跟了其他更多的参数,也可以使用这种方法指定返回
if page:------------------->此处可以简单对page进行处理,因为使用get返回的值是Str类型,需要转成int
page=int(page);
else:
page=1;--------->默认为1
print('PAGE 参数为:',page);
2、引入Djanjo的分页组件
from django.core.paginator import Paginator;--------->重点,这就是Django的分页组件 #列表页
def get_article(request):
page=request.GET.get('page');
if page:
page=int(page);
else:
page=1;
print('PAGE 参数为:',page);
article_list=Article.objects.all();
#实例化一个分页组件,第一个参数是需要被分页的列表,第二个参数是每一个的item个数,比如这边指定每页个数为2
paginator=Paginator(article_list,2);
#page方法,传入一个参数,表示第几页的列表,这边传入的page,是你在地址中写的参数
page_article_list=paginator.page(page);----------------->获得指定page的列表
page_num=paginator.num_pages;------------------->获得列表被分页处理后,总共被分为多少页
#print('page_num:',page_num);
#判断是否存在下一页
if page_article_list.has_next():
next_page=page+1; else:
next_page=page;
#是否存在上一页
if page_article_list.has_previous():
previous_page=page-1;
else:
previous_page=page; return render(request,'index.html',{
#根据前端,我们需要知道当前page的列表,需要知道点击【上一页】,跳转,点击下一页的跳转,需要知道被分了几页
'article_list':page_article_list,------->当前page的list
'page_num':range(1,page_num+1),---------->被分了几页,这个返回一个数组,前端直接for循环渲染
'curr_page':page,---------->当前页数
'next_page':next_page,---------->下一页
'previous_page':previous_page————————————————>上一页
})
3、前端修改
引入bootstrap的分页代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>主页--文章列表页</title> <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <!-- 可选的 Bootstrap 主题文件(一般不用引入) -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"> <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</head>
<body>
<div class="container page-header">
<h1>文章列表
<small>by zhonghuihong </small></h1> </div>
<div class="container page-body">
<div class="col-md-9" role="main">
<div class="body-main">
<div>
{% for article in article_list %}
<h2><a href="get_detail/{{ article.article_id }}">{{article.article_title}}</a></h2>
<p>{{article.article_content}}</p>
{% endfor %} </div> </div>
<div class="body-footer">
<div class="col-md-4 col-md-offset-3">
<nav aria-label="Page navigation">
<ul class="pagination">
<li>
<a href="/blog/get_article?page={{ next_page }}" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
{% for num in page_num %}
<li>
<a href="/blog/get_article?page={{ num }}">{{ num }}</a>
</li>
{% endfor %} <li>
<a href="/blog/get_article?page={{ previous_page }}" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li> </ul>
</nav>
</div>
</div>
</div>
<div class="col-md-3" role="complementary">
<div><h2>最新文章</h2>
{% for article in article_list %} <h4><a href="get_detail/{{ article.article_id }}">{{article.article_title}}</a></h4>
{% endfor %}
</div>
</div>
</div> </body>
</html>
4、调试验收--确认功能正常无报错
耶!!!继续努力
Django----列表分页(使用Django的分页组件)的更多相关文章
- 比Django官方实现更好的分页组件+Bootstrap整合
前言 Django全家桶自带的分页组件只能说能满足分页这个功能,但是没那么好用就是了 Django的分页效果 django-pure-pagination分页效果 使用方法 首先安装: pip ins ...
- 13、Django实战第13天:分页列表功能
我们看课程 机构列表页是需要分页的 为了完成分页功能,我们需要用到Django的一个开源开发库django-pure-pagination workon mxonline pip install dj ...
- Django - Cookie、Session、自定义分页和Django分页器
2. 今日内容 https://www.cnblogs.com/liwenzhou/p/8343243.html 1. Cookie和Session 1. Cookie 服务端: 1. 生成字符串 2 ...
- Django学习笔记(12)——分页功能
这一篇博客记录一下自己学习Django中分页功能的笔记.分页功能在每个网站都是必要的,当页面因需要展示的数据条目过多,导致无法全部显示,这时候就需要采用分页的形式进行展示. 分页在网站随处可见,下面展 ...
- Python学习笔记整理总结【Django】:模板语言、分页、Cookie、Session
一.模板语言 1.在前段展示:对象/字典/元组 class Business(models.Model): # id #用默认的自增id列 即:Business中有3列数据(id, caption, ...
- Django rest framework(7)----分页
目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Djan ...
- 稳定易用的 Django 分页库,完善分页功能
作者:HelloGitHub-追梦人物 文中所涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 在 通过 Django Pagination 实现简单分页 中,我们实现了一个简单的 ...
- Django的Cookie Session和自定义分页
cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...
- Django框架第九篇--Django和Ajax、序列化组件(serializers)、自定义分页器、模型表choice参数
Django和Ajax 一.什么是Ajax AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”.即使用Javascript语 ...
- 通过angularjs的directive以及service来实现的列表页加载排序分页
前两篇:(列表页的动态条件搜索,我是如何做列表页的)分别介绍了我们是如何做后端业务系统数据展示类的列表页以及动态搜索的,那么还剩下最重要的一项:数据展示.数据展示一般包含三部分: 数据列头 数据行 分 ...
随机推荐
- 人生苦短,Let's Go目录
目录 GO语言系列(一)- 初识go语言 GO语言系列(二)- 基本数据类型和操作符 Go语言系列(三)- 基础函数和流程控制 GO语言系列(四)- 内置函数.闭包与高级数据类型 GO语言系列(五)- ...
- socket(TCP)通讯之Python实现
1.Service address = ('localhost', 9102) # AF_INET = ipv4; SOCK_STREAM:TCP s = socket.socket(socket.A ...
- springboot集成freemarker静态资源无法访问
如题配置文件加上 #设定静态文件路径,js,css等.static为你放置静态资源的文件夹名称,也可以叫别的名字.properties加上 spring.mvc.static-path-pattern ...
- HBase基本概念与基本使用
1. HBase简介 1.1 什么是HBase HBASE是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群. HBASE ...
- [转载] win10进行端口转发
1.添加端口转发netsh interface portproxy add v4tov4 listenport=4000 listenaddress=127.0.0.1 connectport=400 ...
- Vue + Element 配置报错
{ test: /\.(eot|svg|ttf|woff|woff2)$/, loader: 'file-loader'}
- jQuery禁用、开启鼠标滚轮事件
1.禁用鼠标滚轮事件 $(document).bind('mousewheel', function(event, delta) {return false;}); 2.开启鼠标滚轮事件,直接解绑事件 ...
- redhat7.4切换yum源为免费源
1.redhat是Linux系统中付费的企业版,虽然安装什么是免费的,但是需要注册. 如果你有注册码,暂请出门左拐(我没有注册码,所以我也不会注册,不用往下看了). Linux系统收费版:RedHat ...
- Python:python抓取豆瓣电影top250
一直对爬虫感兴趣,学了python后正好看到某篇关于爬取的文章,就心血来潮实战一把吧. 实现目标:抓取豆瓣电影top250,并输出到文件中 1.找到对应的url:https://movie.douba ...
- 题解:[GXOI/GZOI2019]与或和
开始完全没思路 在洛谷看到样例一,突发奇想,决定先做一下元素只有0/1的情况 发现子任务1是全1子矩阵 子任务2是总子矩阵个数减去全0子矩阵 发现全0/1矩阵可以构造单调栈解决.具体做法:前缀和求出每 ...