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来实现的列表页加载排序分页
前两篇:(列表页的动态条件搜索,我是如何做列表页的)分别介绍了我们是如何做后端业务系统数据展示类的列表页以及动态搜索的,那么还剩下最重要的一项:数据展示.数据展示一般包含三部分: 数据列头 数据行 分 ...
随机推荐
- scws安装
mkdir scws cd scws wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2 tar xvjf scws-.tar.bz2 ...
- Hibernate日志输出到SLF4J
一,Hibernate日志问题 工程使用SLF4J,但日志文件一直没有看到Hibernate相关日志及showsql 二,Logback文件配置 修改Hibernate 日志输出指定为SLF4J,当修 ...
- ZooKeeper-API 监听
以服务动态上下线通知为例 Client 监听服务器状态 public class DistributeClient { private String connectString = "127 ...
- python之路(3)函数和匿名函数
函数 函数与过程 过程 def test(): "注释" print('1 am chen') test() : 过程调用 def : 定义函数的关键字 test : 函数名 pr ...
- 使用lombok 注解Java类
环境信息: IDEA 2016.2.4 Maven 3 JDK 1.8 Maven工程配置: <properties> <lombok.version>1.16.16< ...
- Arduino常用的数据类型以及转换
常用的数据类型有布尔类型.字符型.字节型.整型.无符号整型.长整型.无符号长整型.浮点型.双精度浮点型等 布尔类型bollean: 布尔值是一种逻辑值,其结果只能为真(true)或者假(false). ...
- Flask 之东方不败一
1,flask的初始 flask是Python的一个轻量级的web框架,相当于django而言. 知识点Python 三大主流web框架的对比 1.Django 主要特点是大而全,集成了很多组件,例如 ...
- Ueditor增加文字竖排显示和从右向左输入(支持蒙古文和维吾尔文)
平时我们在ueditor中都是输入的中文,排版都是从左向右输入.但是当输入一些少数民民族言时,ueditor却不能正常显示. 例如蒙古文字,传统蒙文是竖排书写.如下图:传统蒙古文排文方式,<蒙古 ...
- vue面试题总结
1.vue双向绑定的实现原理2.js的继承和原型链3.es6语法箭头函数和普通函数的区别 普通函数的this总是指向它的直接调用者. 在严格模式下,没找到直接调用者,则函数中的this是undefin ...
- Windows XP 的最高版本 .net framework 安装
注意: Windows XP 系统已于2014年4月8日停止维护.出于安全.性能及新设备支持考虑,应立即停止使用. 安装 Windows XP SP3 所支持的最高.net framework 版本为 ...