__author__ = 'Administrator' from django.utils.safestring import mark_safe class Page: def __init__(self, current_page, data_count, per_page_count=10, pager_num=7): self.current_page = current_page self.data_count = data_count self.per_page_count = per_page_count self.pager_num = pager_num @property def start(self): return (self.current_page - 1) * self.per_page_count @property def end(self): return self.current_page * self.per_page_count @property def total_count(self): v, y = divmod(self.data_count, self.per_page_count) if y: v += 1 return v def page_str(self, base_url): page_list = [] if self.total_count < self.pager_num: start_index = 1 end_index = self.total_count + 1 else: if self.current_page <= (self.pager_num + 1) / 2: start_index = 1 end_index = self.pager_num + 1 else: start_index = self.current_page - (self.pager_num - 1) / 2 end_index = self.current_page + (self.pager_num + 1) / 2 if (self.current_page + (self.pager_num - 1) / 2) > self.total_count: end_index = self.total_count + 1 start_index = self.total_count - self.pager_num + 1 if self.current_page == 1: prev = '<a class="page" href="javascript:void(0);">上一页</a>' else: prev = '<a class="page" href="%s?p=%s">上一页</a>' % (base_url, self.current_page - 1,) page_list.append(prev) for i in range(int(start_index), int(end_index)): if i == self.current_page: temp = '<a class="page active" href="%s?p=%s">%s</a>' % (base_url, i, i) else: temp = '<a class="page" href="%s?p=%s">%s</a>' % (base_url, i, i) page_list.append(temp) if self.current_page == self.total_count: nex = '<a class="page" href="javascript:void(0);">下一页</a>' else: nex = '<a class="page" href="%s?p=%s">下一页</a>' % (base_url, self.current_page + 1,) page_list.append(nex) jump = """ <input type='text' /><a onclick='jumpTo(this, "%s?p=");'>GO</a> <script> function jumpTo(ths,base){ var val = ths.previousSibling.value; location.href = base + val; } </script> """ % (base_url,) page_list.append(jump) page_str = mark_safe("".join(page_list)) return page_str
相关推荐
总之,Django分页器是处理大量数据的有效工具,`django-pure-pagination`作为Django的一个第三方库,提供了一种简单易用的方式来实现分页功能。通过以上步骤,你可以快速地在你的Django项目中集成并使用这个库,提升...
在Python的Web开发框架Django中,分页处理是一项常用的功能,它可以帮助用户更有效地浏览大量数据,避免一次性加载所有内容导致页面响应慢或者内存占用过大。本教程将深入探讨如何在Django项目中实现分页处理。 ...
Python开发Django 框架实现功能10. 用Django分页器实现文章分页.mp4
Django分页+增删改查 演示地址:http://t.csdn.cn/8F3U7 演示地址:http://t.csdn.cn/8F3U7 演示地址:http://t.csdn.cn/8F3U7 演示地址:http://t.csdn.cn/8F3U7 演示地址:http://t.csdn.cn/8F3U7 演示地址:...
Django 分页查询并返回 json ,需要将返回的 queryset 序列化, demo 如下: # coding=UTF-8 import os from django.core import serializers from django.core.paginator import Paginator, PageNotAnInteger, ...
1.Django 搜索结果分页的实现 在这里我们用django自带的分页模块来实现 这个paginator对象中带有如下属性: #per_page:每页显示条目数量 #count:数据总个数 #num_pages:总页数 #page_range:总页数的索引范围,如...
django+python自定义分页插件,简单易用,只需要三行代码即可展示自定义分页,支持多个展示效果
**一、Django分页原理** 在Django中,实现分页主要依赖于`django.core.paginator`模块。这个模块提供了`Paginator`类,可以将数据集分成一系列的小页面。通过传递查询集(queryset)和每页显示的项目数量,我们可以...
这次,给大家分享layui动态表格内置的方法结合django分页模块来实现表格的一系列操作,简单实用方便。 Django:非常强大的web开发框架 Paginator:Django自带的一个轻量级分页模块 layui:类UI(谐音),一款强大的...
`Paginator`是Django分页的核心类,它接收四个参数: - `object_list`:这是一个可迭代对象,通常是Django的QuerySet,包含了需要分页的数据。 - `per_page`:每页显示的数据量。 - `orphans`:孤儿数,即允许...
总结来说,Django分页功能的实现涉及到项目的创建与配置、路由配置、使用Paginator进行数据分页、模板的编写与数据展示以及分页视图的细节处理。通过本文的介绍,我们可以了解到分页功能在Django项目中是如何一步步...
### Django的分页器Paginator详解 #### 一、前言 在Web开发中,当一个列表数据量过大时,为了提升用户体验以及减轻服务器压力,通常会采用分页的方式...希望本文能帮助读者更好地理解和掌握Django分页器的使用方法。
2022 B站最详细django3教程(django从入门到实践) 很适合刚学习django的同学 通过一个案例,把django的基本的templates,models,urls,from,modelfrom讲的清清楚楚,甚至还给了我们应用场景。
在Django中,进行多条件查询是常见的需求,特别是在开发复杂的Web应用时。本文将详细介绍如何在Django中解决多条件查询的问题,并提供一个实际的示例。 首先,我们需要了解Django的ORM(Object-Relational Mapping)...
这个库的设计灵感来源于Eric Florenzano(ericflo)的Django分页组件,旨在简化在网页上展示分页且可排序的数据表的工作流程。通过结合这两个工具,你可以轻松地创建交互式、高性能的数据展示界面,尤其适合处理大量...
** Django 试题发布和测验系统 ** Django是一个用Python编写的高级Web框架,它鼓励快速开发和实用主义设计。在这个"django试题发布和测验"项目中,开发者构建了一个小型的在线测试系统,允许用户创建并发布自己的...