首页 > 其他分享 >django分页器使用

django分页器使用

时间:2023-07-18 09:24:17浏览次数:48  
标签:Paginator count 分页 一页 django pg 使用 page

https://docs.djangoproject.com/en/3.2/topics/pagination/

Django 提供了高级和低级方法来帮助您管理分页数据——即,分成多个页面的数据,并带有“上一页/下一页”链接。

Paginator

在底层,所有分页方法都使用 Paginator 类.

可以为 Paginator() 提供列表/元组、Django QuerySet 或任何其他具有 count()__len__() 方法的对象。

当确定传递的对象中包含的对象数量时, Paginator 将首先尝试调用 count() ,如果传递的对象没有 count() 方法,则使用 len() 。这允许 Django 的 QuerySet 等对象在可用时使用更高效的 count() 方法。

Paginator方法/属性

# 返回分页中所有数据的总数
pg.count

# 每页多少条数据
pg.per_page

# 总共有多少页
pg.num_pagess

# 返回某一页(返回的是一个Page()对象)
pg.page(<第几页>)

Page

方法/属性

# 返回Page类对应的paginator对象
p.paginator

# 当前页中的数据
p.object_list

# 是否有下一页
p.has_next()

# 是否有上一页
p.has_previous()

# 下一页页数
p.next_page_number()

# 上一页页数
p.previous_page_number()

直接上例子~

# 导入类
>>> from django.core.paginator import Paginator

# 按照每页2条数据来分页图书
>>> pg = Paginator(PeopleInfo.objects.all(), 2)

# 分页对象中数据的总数,这个就是你给定的PeopleInfo.objects.all()获取的数据总数
>>> pg.count
17

# 总有多少页
>>> pg.num_pages
9

# 拿到第一页对象Page
>>> page1 = pg.page(1) 
>>> page1
<Page 1 of 9>

# 获取第一页中的数据
>>> page1.object_list
<QuerySet [<PeopleInfo: 郭靖>, <PeopleInfo: 黄蓉>]>


标签:Paginator,count,分页,一页,django,pg,使用,page
From: https://www.cnblogs.com/juelian/p/17561860.html

相关文章

  • django查询-列延迟加载only()、defer()
    这玩意和sqlalchemy的几乎一样。only():只加载给定的列,其他列只有在使用时会发起二次查询defer():不加载指定的列,刚好和only()相反。实例:>>>ret=BookInfo.objects.get(id=1).only("name")#1、先导入connection,获取django查询的所有sql语句>>>fromdjango.dbimportconn......
  • 使用 JavaScript 脚本来进行复杂的查询改写
    有这么一个需求:网关里怎样对跨集群搜索进行支持的呢?我想实现:输入的搜索请求是lp:9200/index1/_search这个索引在3个集群上,需要跨集群检索,也就是网关能否改成lp:9200/cluster01:index1,cluster02,index1,cluster03:index1/_search呢?索引有一百多个,名称不一定是app,还......
  • 使用telnet来调试游戏
    telnet是什么Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力但是,telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。但仍然有很多别的系统......
  • NET7中sqlsugar的使用
    NET7中sqlsugar的使用仿《深入浅出ASP.NETCORE》这书里的IRepository和RepositoryBase usingSqlSugar;usingSystem.Linq.Expressions;namespaceWebApplication1.DAL{///<summary>///所有仓储的约定,此接口仅作为约定,用于标识他们///</summary>......
  • HandlerMethodArgumentResolver方法参数解析器的使用
    一、使用场景介绍HandlerMethodArgumentResolver,中文称为方法参数解析器,是SpringWeb(SpringMVC)组件中的众多解析器之一,主要用来对Controller中方法的参数进行处理。在一般的接口调用场景下,每次调用Controller都需要检查请求中的token信息,并根据token还原用户信息,然后将用户信息封......
  • 如何使用 Amazon Systems Manager 集中管理 Amazon IoT Greengrass 设备
    对于边缘设备管理员来说,远程管理大量不同的系统和应用程序会是一项富有挑战性的任务。AmazonIoTGreengrass 可帮助这些系统管理员管理其边缘设备应用程序堆栈。不过,这些设备上的系统软件必须通过与其大型IT企业的运营策略一致的运营策略来单独更新和维护。此外,客户必须构建或......
  • 使用docker安装的tomcat部署activiti-app.war、activiti-admin.war失败(ClassNotFound
    背景一直以来习惯用docker配置一些本地学习环境,许多教程配置activiti的方式都是通过复制activiti的war包部署在tomcat中,我尝试了一下通过docker的方式遇到了一些不易察觉的错误。使用方式描述使用docker安装tomcat9.0dockerrun-d-p8080:8080--nametomcattomcat:9.0复......
  • 浅析vue3中如何使用动态组件、如何快速理解Vue3的 toRaw和markRaw、ref与shallowRef、
    一、Vue3中使用component:is加载动态组件1、不使用setup语法糖,这种方式和vue2差不多,is可以是个字符串2、使用setup语法糖,这时候的is如果使用字符串就会加载不出来,得使用组件实例<componentclass="task-box":is="componentObj[route.params.type]":info="taskInfo"></co......
  • django
    目录1、总体结构2、交互关系3、Model(1)Field的定义(2)Model中可以定义Method,实现下列功能:(3)数据库表查询1)基本查询2)使用过滤器查询3)字段(Field)查询4、View(1)URL分发处理(2)View函数5、Template(1)变量(2)TAG(3)过滤器功能(4)Template继承1、总体结构Django是MTV结构,即:Model,Template,ViewMo......
  • Jetpack Compose:开始使用Model
    接上篇https://www.cnblogs.com/develon/p/17525925.html参考:https://juejin.cn/post/6844903982742126600Model概览......