1.导入Django自带的分页类

from django.core.paginator import Paginator

2.分页类的使用

def index(request):
# return HttpResponse('hello django!')
limit = request.GET.get('limit',5)
page_number = request.GET.get('page',1)
articles = models.Article.objects.all()
page = Paginator(articles,limit) # 分页后的对象
articles = page.page(page_number) # 当前页的数据 print(articles.has_next()) # 有没有下一页
# print(articles.next_page_number())#下一页的页码,有下一页的话才有
print(articles.has_other_pages()) # 有没有其他页
print(articles.has_previous()) # 有没有上一页
# print(articles.previous_page_number())#上一页的页码
print(articles.number) # 当前页的页码
print(articles.start_index()) # 当前这一页的第一条数据的下标
print(articles.end_index()) # 当前这一页的最后一条数据的下标
# articles.paginator #就是上面分页完之后的对象 print(page.num_pages) # 总共多少页
print(page.page_range) # 分页的范围 1 2 3 4
# articles.paginator.num_pages
# title = 'my blog'
return render(request, 'index.html', {'articles': articles})

3. 前端代码中使用

<div class="text-center mt-2 mt-sm-1 mt-md-0 mb-3 f-16">
{% if articles.has_previous %}
<a class="text-success" href="?page={{ articles.previous_page_number }}">上一页</a>
{% else %}
<span class="text-secondary" title="当前页已经是首页">上一页</span>
{% endif %}
<span class="mx-2">第&nbsp;{{ articles.number }}&nbsp;/&nbsp;{{ articles.paginator.num_pages }}&nbsp;页</span>
{% if articles.has_next %}
<a class="text-success" href="?page={{ articles.next_page_number }}">下一页</a>
{% else %}
<span class="text-secondary" title="当前页已经是尾页">下一页</span>
{% endif %} </div>

index.html

Django基础06篇 分页的更多相关文章

  1. Django基础——Model篇(三)

    一 Django ORM中的概念 ORM —— 关系对象映射,是Object Relational Mapping的简写,是用来简化数据库操作的框架 Django ORM遵循Code Frist原则, ...

  2. Django基础——Model篇(二)

    一 Model连表关系 一对多:models.ForeignKey(其他表)    多对多:models.ManyToManyField(其他表)    一对一:models.OneToOneFiel ...

  3. Django基础——Model篇(一)

    到目前为止,当程序涉及到数据库相关操作时,我们一般都会这么操作:    (1)创建数据库,设计表结构和字段    (2)使用MySQLdb来连接数据库,并编写数据访问层代码    (3)业务逻辑层去调 ...

  4. django基础知识之分页:

    分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据, ...

  5. Django基础第一篇

    目录 1.Django MTV框架简介 2.基础命令创建项目的配置说明 3.前后端交互案例 4.基于数据库实现数据交互增删改查 Django简介 Django框架的设计模式借鉴了MVC的思想,和MVC ...

  6. Django基础07篇 ORM操作

    1.新增(类似数据库操作的insert) # 新增 #方式一: models.Category.objects.create(name='MySQL') #方式二: c = models.Catego ...

  7. Django 基础05篇 上下文管理和前端代码复用

    一.上下文管理器 在views中重复使用的代码,可以通过上下文管理器(在setting.py文件中的TEMPLATES中配置)中实现,减少代码冗余 上下文管理器的处理流程如下: 1.先走完views里 ...

  8. Django基础-04篇 Django开发前后端联动

    1. 写views views.py代码块 1.在前端以/article/{{ article.id }}这种方式请求后台, 参数配置在urls.py中path('category/<int:i ...

  9. Django基础08篇 filter&tag

    1.Django自带的过滤器filter views.py中代码 def template_tags(request): import datetime content = '三胖content三胖c ...

随机推荐

  1. 1. 回顾Servlet

    回顾Servlet 创建web工程 servlet-api:http://dwz.date/aTGa 编写Servlet import javax.servlet.ServletException; ...

  2. Redis持久化锦囊在手,再也不会担心数据丢失了

    大家好,我是小羽. Redis 的读写都是在内存中进行的,所以它的性能高.而当我们的服务器断开或者重启的时候,数据就会消失,那么我们该怎么解决这个问题呢? 其实 Redis 已经为我们提供了一种持久化 ...

  3. Django框架中logging的使用

    Django框架中logging的使用 日志是我们在项目开发中必不可少的一个环节,Python中内置的logging已经足够优秀到可以直接在项目中使用. 本文介绍了如何在DJango项目中配置日志. ...

  4. Go语言的GOPATH详解

    在GOLAND中设置GOPATH: 设置好路径后,并不是直接在这个路径下面写代码文件就行了 GO会识别GOPATH下的src目录,而真正的引用的包名,是src下的目录名,然后才是代码模块名 目录结构如 ...

  5. 使用现代C++如何避免bugs(下)

     使用现代C++如何避免bugs(下) About virtual functions Virtual functions hinder a potential problem: the thing ...

  6. 激光雷达Lidar与毫米波雷达Radar:自动驾驶的利弊

    激光雷达Lidar与毫米波雷达Radar:自动驾驶的利弊 Lidar vs Radar: pros and cons for autonomous driving 新型无人驾驶汽车的数量在缓慢增加,各 ...

  7. Java线程的并发工具类

    Java线程的并发工具类. 一.fork/join 1. Fork-Join原理 在必要的情况下,将一个大任务,拆分(fork)成若干个小任务,然后再将一个个小任务的结果进行汇总(join). 适用场 ...

  8. Django基础之视图层

    内容概要 小白必会三板斧 request对象方法初识 form表单上传文件 Jsonresponse FBV与CBV 内容详细 1 小白必会三板斧 HttpResponse render redire ...

  9. Linux 的ftp服务未启用怎么办

    1.检查是否安装ftp相关的rpm包(如出现下面提示证明是安装过相关rpm包的) [root@rac1 ~]# which vsftpd    /usr/sbin/vsftpd    [root@ra ...

  10. Golang学习(用代码来学习) - 第五篇

    /** 并发控制:context的学习 */ func context_test() { PrintStartSeperator("context_test") ctx, canc ...