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

如何使用变量'per_page‘进行分页django?

在Django中,可以使用变量'per_page'来实现分页。'per_page'变量用于指定每页显示的记录数。下面是使用'per_page'变量进行分页的步骤:

  1. 首先,在视图函数或类中,获取'per_page'变量的值。可以通过GET请求参数或其他方式获取该值。
  2. 然后,使用Django内置的分页模块(django.core.paginator)来进行分页。导入Paginator类和Page类。
  3. 在查询数据之前,创建一个Paginator对象,将查询结果集和每页显示的记录数传递给Paginator对象。
代码语言:python
代码运行次数:0
复制

from django.core.paginator import Paginator

def my_view(request):

代码语言:txt
复制
   per_page = request.GET.get('per_page', 10)  # 默认每页显示10条记录
代码语言:txt
复制
   queryset = MyModel.objects.all()
代码语言:txt
复制
   paginator = Paginator(queryset, per_page)
代码语言:txt
复制
   page_number = request.GET.get('page', 1)  # 获取当前页码,默认为第一页
代码语言:txt
复制
   page = paginator.get_page(page_number)
代码语言:txt
复制
   # 其他逻辑处理...
代码语言:txt
复制
  1. 在模板中,使用Paginator对象的方法来渲染分页导航和显示当前页的数据。
代码语言:html
复制

<ul class="pagination">

代码语言:txt
复制
   {% if page.has_previous %}
代码语言:txt
复制
       <li><a href="?page={{ page.previous_page_number }}&per_page={{ per_page }}">上一页</a></li>
代码语言:txt
复制
   {% endif %}
代码语言:txt
复制
   {% for num in page.paginator.page_range %}
代码语言:txt
复制
       {% if page.number == num %}
代码语言:txt
复制
           <li class="active"><span>{{ num }}</span></li>
代码语言:txt
复制
       {% else %}
代码语言:txt
复制
           <li><a href="?page={{ num }}&per_page={{ per_page }}">{{ num }}</a></li>
代码语言:txt
复制
       {% endif %}
代码语言:txt
复制
   {% endfor %}
代码语言:txt
复制
   {% if page.has_next %}
代码语言:txt
复制
       <li><a href="?page={{ page.next_page_number }}&per_page={{ per_page }}">下一页</a></li>
代码语言:txt
复制
   {% endif %}

</ul>

{% for item in page %}

代码语言:txt
复制
   <!-- 显示当前页的数据 -->

{% endfor %}

代码语言:txt
复制

通过以上步骤,就可以使用变量'per_page'进行分页。每页显示的记录数由'per_page'变量指定,用户可以通过修改URL中的'per_page'参数来改变每页显示的记录数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django REST Framework-如何使用分页

在 Django REST Framework 中,分页器是一种允许我们将查询结果划分为多个页面,并将每个页面的数据返回给客户端的工具。...Django REST Framework 中内置了两种基于页码的分页器:PageNumberPagination 和 LimitOffsetPagination。...基于游标的分页器基于游标的分页器与基于页码的分页器不同,它使用一个游标来标识要返回的数据范围。在客户端发送第一次请求时,服务器返回一组数据和一个游标。客户端使用这个游标来请求下一组数据。...客户端可以使用 next 和 previous 参数来请求下一页和上一页。在 Django REST Framework 中,分页器是一种将查询结果划分为多个页面并将每个页面的数据返回给客户端的工具。...Django REST Framework 中内置了两种分页器,即基于页码的分页器和基于游标的分页器。

2K41

优雅地使用django进行分页(自定义tag)

本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/113/ 背景 使用django自带的 官方的分页器做了一个网站,但是分页的效果过于丑陋。...[mdegj4bix6.png] 使用自定义tag实现分页器 其实使用JavaScript实现一个优雅的分页器并没有技术难度,只是繁琐的东西太多,尤其是当前页在最左边或者最右边时。...使用 {% load proper\_paginate %} 对自己的tag进行加载.注意这里应该加花括号与百分号。 3....重启django # 对原始分页器的修改 在使用中发现工作不正常,源码中{% for i in paginator|proper\_paginate:page\_obj.number %}出错, 可能是...undefined 使用with语句在模板中定义变量,可以参考在模板中定义变量 修改后的完整的html模板如下: undefined 其他未解决问题: 1.

68650
  • Solr如何使用游标进行深度分页查询

    通常,我们的应用系统,如果要做一次全量数据的读取,大多数时候,采用的方式会是使用分页读取的方式,然而 分页读取的方式,在大数据量的情况下,在solr里面表现并不是特别好,因为它随时可能会发生OOM的异常...,所以在solr里面,分页并不适合深度分页。...深度分页在solr里面,更推荐使用游标的方式,游标是无状态的,不会维护索引数据在内存里面,仅仅记录最后一个doc的计算值类似md5,然后每一次读取,都会如此记录最后一个值的mark,下一次通过这个mark...,那么会造成多个游标的mark值,这样以来下一次请求就不知道如何定位了,而且有可能出现重复读数据的情况 (3)如果一个分页的系统,按照指定页码跳转的功能,这样实现的功能是实现不了的,因为游标一旦读取了...,就不能再返回上一次的位置了,这种业务最好使用start+rows搞定。

    2.6K70

    Solr中如何使用游标进行深度分页查询

    通常,我们的应用系统,如果要做一次全量数据的读取,大多数时候,采用的方式会是使用分页读取的方式,然而 分页读取的方式,在大数据量的情况下,在solr里面表现并不是特别好,因为它随时可能会发生OOM的异常...,所以在solr里面,分页并不适合深度分页。...深度分页在solr里面,更推荐使用游标的方式,游标是无状态的,不会维护索引数据在内存里面,仅仅记录最后一个doc的计算值类似md5,然后每一次读取,都会如此记录最后一个值的mark,下一次通过这个mark...主键重复,那么会造成多个游标的mark值,这样以来下一次请求就不知道如何定位了,而且有可能出现重复读数据的情况 (3)如果一个分页的系统,按照指定页码跳转的功能,这样实现的功能是实现不了的,因为游标一旦读取了...,就不能再返回上一次的位置了,这种业务最好使用start+rows搞定。

    3.3K60

    使用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分页Paginator的简单使用

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

    1.1K30

    如何使用桶模式进行分页——第一讲

    我们可以使用一种灵活、易用的数据模型,MongoDB就是理想的解决方案,它提供强大的数据建模方法,使分页变得快速、高效。今天,我们就来探索在大量数据的前提下如何快速简单分页的问题。...我们还可以很方便地按照日期进行排序。记住所显示文档的最后一个日期(例如,通过会话变量或查询字符串),我们就可以对查询语句做如下图所示的相应修改,并且不再需要跳过命令。...使用另一种方法的要点在于:如何在不需要事先加载之前所有数据的情况下加载所需的数值。这种解决方案需要跟踪所查看的最后一个文档,以便找到下一个文档集。...如果采用桶模式的方法进行分页,加载每一页只需要一个单独的文档,而这个单独文档就能生成整个页面! 现在,让我们深入了解一下所显示信息的存储方式。 注意存储在_id 中的数值。...这种模式是如何工作的? 让我们回到这个想法上来:数据应根据显示需要进行存储,每个桶应该包括足够多的交易,从而生成一个完整的页面。

    1.5K20

    什么是分页?如何使用分页?

    (例:Mybatis自带的分页插件就是逻辑分页) 同时逻辑分页是先查询出所有的数据,再根据代码块的所需(例:你需要拿到第几页,每页几条的数据)筛选出合适的数据进行分页。...通过SQL将所有数据全部查询出来,然后根据游标进行筛选,只是显示出来部分而已。 好处是所有数据库都统一,坏处就是效率低。 2.物理分页(真分页) 物理分页:物理分页依赖于数据库。...1.数据库方面 物理分页是手写SQL语句,故每一次分页都需要访问数据库;逻辑分页是将全部数据查询出来后再进行的分页,只需访问一次数据库。所以说,物理分页对于数据库造成的负担大。...3.实时性 逻辑分页一次性将数据全部查询出来,如果数据库中的数据发生了改变,逻辑分页就不能够获取最新数据(不能自动更新数据),可能导致脏数据的出现,实时性较低 物理分页每一次分页都需要从数据库中进行查询...扩展:Java使用注解实现服务端分页组件 使用一下组件实现通过注解自动服务端分页查询 我们在正常的使用的过程中如果没有太多的业务限制的条件得到情况下我们可以使用mybatis的注解来实现我们的分页的一个展示的情况

    14510

    Django 分页和使用Ajax5.3

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

    3K20

    python测试开发django-115.Paginator分页器展示table表格数据

    前言 django自带的分页器Paginator,可以实现分页 Paginator 分页器 paginator模块有3个跟分页相关的类 Paginator: 分页器对象 PageNotAnInteger..._check_object_list_is_ordered() self.per_page = int(per_page) self.orphans = int(orphans...import Paginator # 实例化,每页显示5条数据 >>> p=Paginator(all,per_page=5) # 获取全部数据 23条 >>> p.count 23 # 获取总页数...,右边是实现效果,可以在线调试,非常方便 django 视图函数 django 视图函数使用分页器Paginator,根据页面url上的请求参数page来获取当前是第几页。...上一页按钮开始#} {# 如果当前页有上一页#} {% if page_object.has_previous %} {# 当前页的上一页按钮正常使用

    93710

    django 1.8 官方文档翻译:13-6 分页

    分页 Django提供了一些类来帮助你管理分页的数据 – 也就是说,数据被分在不同页面中,并带有“上一页/下一页”标签。这些类位于django/core/paginator.py中。...这样会使类似于Django的QuerySet的对象使用更加高效的 count()方法,如果存在的话。...使用 Paginator 这里有一些复杂一点的例子,它们在视图中使用 Paginator 来为查询集分页。我们提供视图以及相关的模板来展示如何展示这些结果。...这样会使类似于Django’s QuerySet的对象使用更加便捷的count()方法,如果存在的话。 Paginator.``num_pages 页面总数。 Paginator....``start_index()[source] 返回当前页上的第一个对象,相对于分页列表的所有对象的序号,从1开始。

    40530

    Flask 学习-73.Flask-SQLAlchemy 分页查询paginate

    前言 Flask-SQLAlchemy 提供了一个分页查询方法 paginate(),方便我们实现在后端查询分页。...分页查询 在django 框架里面有个rest_framework.pagination 分页器, 只需简单的配置就可以实现分页 from rest_framework.pagination import...PageNumberPagination # 定义分页器简单分页(PageNumberPagination) class MyPageNumberPagination(PageNumberPagination...另外还有如下的可调用方法: iter_pages():一个迭代器,返回一个在分页导航中显示的页数列表。 prev():上一页的分页对象。 next():下一页的分页对象。...实例属性有 query:创建Pagination对象对应的query对象 total:匹配的元素总数 per_page:每一页显示的元素个数 items:当前页面的查询结果 分页查询接口 from flask

    2.6K20

    使用 Django 进行测试驱动开发

    然而,测试驱动开发也不是银弹,以下情形并不适合测试驱动开发: 当需求不明确时,有时续期会随着开发的进行而逐渐明确,在这种情况下最初编写的任何测试可能会过时。...了解了测试驱动开发之后,我们用 Django 来演示一下测试驱动开发的过程。...,我们创建一个名字叫 convert 的项目: pip install django django-admin startproject converter 此时 Django 已经为我们生成了 converter...4、编写代码 这和 Django 开发没什么两样,先编写一个 forms.py,内容如下: from django import forms class LengthConverterForm(forms.Form.../convert/ 即可看到界面: 最后的话 本文分享了什么是测试驱动开发,并用测试驱动开发的方式创建了一个简单的 Django 应用程序,用于长度转换。

    1K40
    领券