Django分页比较简单,它内置了一个Paginator类.这样对分页的操作只需要明白这个类就OK了。
def list(request):
after_range_num = 5
bevor_range_num = 4
try:
page = int(request.GET.get("page",1))
print('page----->',page)
if page < 1:
page = 1
except ValueError:
page = 1
info = Article.objects.order_by('id').all()
paginator = Paginator(info,3)
try:
articleList = paginator.page(page)
except(EmptyPage,InvalidPage,PageNotAnInteger):
articleList = paginator.page(1)
print('articleList---->',articleList.object_list)
#显示范围
if page >= after_range_num:
page_range = paginator.page_range[page-after_range_num:page+bevor_range_num]
else:
page_range = paginator.page_range[0:int(page)+bevor_range_num]
return render_to_response("blogsite/list.html",locals())
以上是分页的controller.html代码如下:
{% if info %}
{% for article in articleList.object_list %}
<div class="article">
<div class="title">-----<a href='/blogsite/{{ article.id }}'>{{ article.title }}</a></div>
</div>
{% endfor %}
{% else %}
<p>对不起没有文章奥!</p>
{% endif %}
<hr>
{% if has_previous %}
<a href="/?page={{ previous }}">上一页</a>
{% endif %}
{% if has_next %}
<a href="/?page={{ next }}"></a>
{% endif %}
<hr>
{% if articleList.has_previous %}
<a href="?page={{ articleList.previous_page_number }}" title="下一页">上一页</a>
{% endif %}
{% for p in page_range %}
{% ifequal p articleList.number %}
<span>{{p}}</span>
{% else %}
<a href="?page={{p}}" title="第{{p}}页">{{p}}</a>
{% endifequal %}
{% endfor %}
{% if articleList.has_next %}
<a href="?page={{ articleList.next_page_number }}" title="下一页">下一页</a>
{% endif %}
分享到:
相关推荐
总之,Django分页器是处理大量数据的有效工具,`django-pure-pagination`作为Django的一个第三方库,提供了一种简单易用的方式来实现分页功能。通过以上步骤,你可以快速地在你的Django项目中集成并使用这个库,提升...
需要一个页面分页展示信息,在该页面添加搜索框以提供检索功能。 那么,我们知道,展示信息和检索功能是在同一个页面,也就是共用一个路由。 代码如下: 第一步,写路由:为了清晰,这里只给出主页和展示页面的路由...
这次,给大家分享layui动态表格内置的方法结合django分页模块来实现表格的一系列操作,简单实用方便。 Django:非常强大的web开发框架 Paginator:Django自带的一个轻量级分页模块 layui:类UI(谐音),一款强大的...
Django 内置的 Pagination 能够帮助我们实现简单的分页功能,在上一篇教程中我们使用脚本批量生成了几百篇博客文章,正好用于测试分页效果。 Paginator 类的常用方法 分页功能由 Django 内置的 Paginator 类提供,这...
### Django框架实现的简单分页功能详解 #### 一、引言 在Web应用开发过程中,随着数据库中存储的数据量逐渐增大,为了提高用户...希望本篇文章能帮助读者更好地理解Django分页机制,并能够在自己的项目中灵活运用。
总之,Django的`Paginator`类提供了一种优雅且高效的方式来实现分页功能,使得在Web应用程序中处理大量数据变得更加简单和直观。通过灵活地配置每页的项目数量,以及处理异常情况,你可以确保用户能够轻松地导航和...
`Paginator`是Django分页的核心类,它接收四个参数: - `object_list`:这是一个可迭代对象,通常是Django的QuerySet,包含了需要分页的数据。 - `per_page`:每页显示的数据量。 - `orphans`:孤儿数,即允许...
本篇文章将详细介绍在Django中实现简单分页的流程。 首先,我们需要安装并引入Django的分页库`django.core.paginator`。这个库提供了一种方便的方式来对查询集进行分页操作。在你的`settings.py`文件中确保已经包含...
在Web开发中,对数据集进行分页显示是一个常见的需求,Django通过提供Paginator类来简化分页的实现。下面将详细介绍如何在Django框架中实现分页显示效果。 首先,需要导入Django的Paginator类及相关异常处理类。在...
通过上述示例代码,我们可以看到Django框架提供了一种简单高效的方式来实现分页功能。开发者只需通过几个简单的步骤就能完成分页逻辑的编写。这种方法不仅减少了重复编码的工作量,还提高了代码的可读性和可维护性。...
本项目"django_03_分页实现_zh.zip"是基于Django、Python和MySQL数据库实现的一个简单分页功能,下面将详细介绍相关知识点。 1. Django框架: Django是用Python编写的高级Web框架,它遵循“约定优于配置”的原则,...
函数实现较为简单直接,而类实现则更加灵活和可重用,可以将分页的逻辑封装在类中,便于维护和复用。 2. 类`Page`的属性介绍: - `page_num`:当前页码。 - `total_count`:数据的总数量。 - `tartype`:用于...
本文实例讲述了Django实现简单分页功能的方法。分享给大家供大家参考,具体如下: 使用django的第三方模块django-pure-pagination 安装模块: pip install django-pure-pagination 将’pure_pagination’添加到...
在Python的Django框架中,实现layui风格的分页功能是一项常见的需求,这不仅可以提高用户体验,还能有效地管理大量数据的展示。layui是一个流行的前端UI框架,它的设计简洁、优雅,与Django的后端功能结合可以创建出...
以下是三步实现Django Paginator分页的详细过程: 第一步:创建数据模型 在Django中,数据模型通常定义在`models.py`文件中。以下是一个名为`Subject`的简单模型示例,包含一个自动增长的主键、名称和介绍字段: `...
总结,解决Django中多条件查询的问题,可以利用字典构建查询条件,结合Django ORM的`filter()`方法,实现动态、灵活的查询。这种方法简单易懂,适用于多种场景,特别是当查询条件数量不确定时。同时,前端与后端的...
在Python的Web开发框架Django中,`filters`是一个强大的工具,用于在数据库查询时进行数据筛选和过滤,从而实现精准或模糊查询。本篇将深入探讨如何利用Django的`filter`功能来处理多种查询场景,包括复选框多值准确...
### Django的分页器Paginator详解 #### 一、前言 在Web开发中,当一个列表数据量过大时,为了提升用户体验以及减轻服务器压力,通常会采用分页的方式...希望本文能帮助读者更好地理解和掌握Django分页器的使用方法。
在Django中,通过`django.core.paginator`模块中的`Paginator`类可以很方便地实现分页功能。 接下来,返回json数据是指将后端处理的数据以JSON格式返回给前端,这样前端可以使用JavaScript等技术方便地处理这些数据...
它提供了一系列工具和功能,使得构建Web API变得简单,包括序列化、认证、权限管理、分页和过滤等。 **Python项目开发实战** - Python因其简洁的语法和丰富的库支持而成为开发各种项目,尤其是Web项目时的首选语言...