首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

django分页Paginator的简单使用

之前同事在项目中写了分页的一个函数,但是并没有返回结果集的总个数和总页数。所以我就想到了用 django 自带的分页类获取分页的数据。因为要分页的对象可能是个列表而不是 django 模型的查询集。...只是使用了Paginator类查看总页数和总个数的方法。...count 和 num_pages 方法,因为我初始化 Paginator 时传入的 queryset 没有进行排序,就触发了 _check_object_list_is_ordered方法的警告。...by,但是这是一个不可靠行为,或者说是叫做 undefined behavior ,Django 为了保证在不同数据库,不同版本的数据库中数据一致,加上了这样一个强制。...我还想说一句,num_pages 方法中的ceil函数使用让我眼前一亮,以前求总页数我都是用数学运算分好几种情况考虑,但是看了源码,让人眼前一亮,真的很厉害!

1.1K30

django分页器的用法_django分页查询

前言 当后台返回的数据过多时,我们就要配置分页器,比如一页最多只能展示10条等等,drf中默认配置了3个分页面 PageNumberPagination:基础分页器,性能略差 LimitOffsetPagination...= 5 如果我们需要局部配置则在类视图中访问使用pagination_class = MyPageNumberPagination即可 如果是全局配置,则在settings.py文件中配置如下: REST_FRAMEWORK...,只是游标分页的针对下一页数据的url进行了加密 首先我们自定义一个分页器类,继承自CursorPagination: class MyCursorPagination(CursorPagination...max_page_size = 20 ordering = '-price' 如果我们视图中使用了排序过滤filter_backends = [OrderingFilter],那么我们在访问...ordering=需要排序的字段。 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/164873.html原文链接:https://javaforall.cn

1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django 使用Paginator分页器

    分页后添加删除功能 1.删除功能的实现,很简单,只需要定位得到指定的tr上,取出里面的id号码,并发送给后端,执行sql删除就完事了。...: 通过使用bootstrap框架,并配合Django自带的分页组件即可实现简单的分页效果. # name: models.py from django.db import models class...,当我们页面中的页码数量过多时,默认会将页码全部展示出来,整个页面看上去很不美观,我们可以直接在上方分页代码上稍加修改即可,如下代码. # name: views.py from django.shortcuts...item.hostname, 'hostaddr':item.hostaddr, 'hostmode':item.hostmode } data_list.append(dict) # 使用分页器分页...: 通过使用layui框架完成的一个相对完整的表格分页,可用于生产环境. <!

    1.2K30

    使用Django实现分页器功能

    要使用Django实现分页器,必须从Django中导入Paginator模块 from django.core.paginator import Paginator 假如现在有150条记录要显示,每页显示...#使用列表生成器生成一个包含150个数字的列表 >>> page1=Paginator(list1,10)#生成一个Paginator对象 >>> print(page1.count)#打印总的记录数,...() failed> >>> page1.page(15)#打印第15页的对象 例子,使用Django实现一个分页效果 后端代码: #导入render和HttpResponse...) # 如果用户输入的页数不在系统的页码列表中时,显示最后一页的内容 return render(request,'blog/index.html',locals()) 前端代码: 在需要分页的地方加入...{#上一页按钮开始#} {# 如果当前页有上一页#} {% if post_list.has_previous %} {# 当前页的上一页按钮正常使用

    90420

    django 动态分页切片 分页

    从数据库中查询大量数据时,如果一次性返回会造成用户长时间等待,带来不好体验,以及服务器数据库查询压力, 特别是当表数据上了几十万,或者上百万上千万时,查询一次都需要花很长的时间,何况是频繁查询呢?...1.数据分页返回 2.设置缓存提供返回 3.多数据库负载均衡 emm 后两种我们略过,来讲讲简单高效的分页返回 在django中,分页数据有专门的Paginator库来帮助我们解决这个问题, 可是我觉得这个库太啰嗦...我有办法,你可以试着这样 在你的数据集中用切片的方式将数据一份份切割,分片返回, 实现的效果是和paginator一样的 代码如下 page:请求的页数 如:1,2,3,4,5 size:请求页数的大小...均在get url参数中获取,可设置默认值提供默认返回 all_data=models.datas.objects.all()[int(page)*size:int(page)*size+size] 在django...序列化中,我采用了这种方法数据分片返回,既简单又高效 假如我请求的page为0  ,size默认为10, 代入切片中 它长这样子了 [int(0)*10:int(0)*10+10] 运算后得到  =>

    2.3K10

    Django REST Framework-如何使用分页

    在 Django REST Framework 中,分页器是一种允许我们将查询结果划分为多个页面,并将每个页面的数据返回给客户端的工具。...,并指定了默认的页面大小为 10,并将 ordering 属性设置为 title,以便按标题排序。...客户端可以使用 next 和 previous 参数来请求下一页和上一页。在 Django REST Framework 中,分页器是一种将查询结果划分为多个页面并将每个页面的数据返回给客户端的工具。...Django REST Framework 中内置了两种分页器,即基于页码的分页器和基于游标的分页器。...在使用分页器时,我们可以指定默认的页面大小、页面参数和最大页面大小等属性,以及按特定的字段排序等选项。

    2K41

    Django 分页和使用Ajax5.3

    分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据,每面数据的条数...():返回上一页的页码,如果上一页不存在,抛出InvalidPage异常 len():返回当前页面对象的个数 迭代页面对象:访问当前页面中的每个对象 示例 创建视图pagTest from django.core.paginator...Ajax 使用视图通过上下文向模板中传递数据,需要先加载完成模板的静态页面,再执行模型代码,生成最张的html,返回给浏览器,这个过程将页面与数据集成到了一起,扩展性差 改进方案:通过ajax的方式获取数据...,通过dom操作将数据呈现到界面上 推荐使用框架的ajax相关方法,不要使用XMLHttpRequest对象,因为操作麻烦且不容易查错 jquery框架中提供了.ajax、.get、 由于csrf的约束...,推荐使用$.get 示例:实现省市区的选择 最终实现效果如图: 引入js文件 js文件属于静态文件,创建目录结构如图: 修改settings.py关于静态文件的设置 STATIC_URL = '/

    3K20

    Django分页器

    一.分页器 分页功能是所有网页上都需要提供的功能,当要展示的条目比较多时,就需要进行分页,不但能减小数据库读取数据压力,也有利于用户浏览。...Django为我们提供了一个Paginator分页工具,这个类帮助我们来管理分页数据,该类存放在django/core/paginator.py它可以接收列表、元组或其他可迭代对象。...实例: from django.core.paginator import Paginator lis = ['yven','lqz','egon','hwt','lyf'] # 对lis进行分页,每页...Paginator分四步: 使用任何方法,获取要展示的对象列表QuerySet; 将列表和每页个数传递给Paginator,返回一个分页对象; 调用该对象的各种方法,获取各种分页信息; 在HTML模板中...,使用上面的分页信息构建分页栏。

    75730

    django-分页

    08.16自我总结 django-分页 一.django自带的分页 以读取UserInfo表为例 1.导入模块 from django.core.paginator import Paginator 2...属性 object_list:返回所有页对象的的列表 per_page: 每页显示条目数量 count:数据总个数 num_pages:总页数 page_range:总页数的索引范围,如: (1,10...object_list:返回当前页对象的的列表 number:返回当前页是第几页,从1开始 paginator:当前页对应的paginator对象 方法 has_next(): 是否有下一页,有就返回...Ture next_page_numbe()r:返回值下一页页码 has_previous():是否有上一页,有就返回Ture previous_page_number():返回值上一页页码 二.自定义分页...原理:我们用orm获得表里面信息的时候,他是个列表,我们可以用列表的切片来进行内容选取而达到分页的效果

    44910

    Django分页器的用法

    1、准备基础数据 2、一次性展示数据 3、引入分页器 Django是一个大而全的框架。...需要明确的是,传参进行分页获取分页后的数据,一般都是通过向服务器发送get请求的方式实现的,在向后端服务发送查看数据的同时可以携带一个或多个参数并发送get请求来实现分页查看功能 前面总结过drf框架中分页器的使用...,本文主要介绍在利用Django开发MVT模型项目时分页器的使用 1、准备基础数据 设计表模型 为了体现分页的效果,需要先创建一个表并准备较多数据,模型如下 from django.db import...print(page.object_list) # [4, 5, 6] for i in page: print(i) 在这里的例子中具体使用分页器及模板语法,例如每页取出...在视图函数中:处理相关异常;传递相关参数;当页码较多时只显示部分页码,例如最多时总共10个页码,当前页码始终在中间显示;单独处理出现边界情况,负数页码的情况及最大页码用完的情况 from django.core.paginator

    1.1K10

    Django内置的分页模块

    page={}">尾页'.format(self.url_prefix, self.page_num)) return "".join(l)  封装版使用步骤: 将上面的一段代码复制到自定义的模块...(pt文件)中 导入自定义模块 在views系统的函数里写入以下代码 def user_list(request): # 实例化一个分页类的对象 obj = Pagination(blogs.count...(),page,'blogs.html') # 根据传入的总博客数、页码获取当页需要展示的博客 blog_list = blogs[obj.start:obj.end] # 根据传入的博客数及页码获取生成分页的...bootstrap分页样式 Django中的内置分页(不能展示页码列表) from django.shortcuts import render from django.core.paginator...has_previous 是否有上一页 # previous_page_number 上一页页码 # object_list 分页之后的数据列表

    88280

    稳定易用的 Django 分页库,完善分页功能

    接下来我们将通过拓展 Django Pagination 来实现下图这样比较完善的分页效果。...然后我在 GitHub 上通过 django pagination 关键词进行搜索,在比较了多个 star 数比较高的项目后,发现 django-pure-pagination 文档最清晰,使用最简单,...值得一提的是,尽管这个应用显示作者最后一次更新代码在 4 年前,但我粗略浏览了一下源码,发现其依赖的 django api 4 年来异常稳定,所以确保能在 django 2.2 中使用。...接下来我们就来使用它,首先安装它: $ pipenv install django-pure-pagination 然后将它注册到 INSTALLED_APPS 里: INSTALLED_APPS =...,这是 django-pure-pagination 提供的配置项,用于个性化配置分页效果: # django-pure-pagination 分页设置 PAGINATION_SETTINGS = {

    91720
    领券