Python之django自带的分页功能
前端页面:
<div class="col-sm-6">
<div class="dataTables_paginate paging_simple_numbers" id="dataTables-example_paginate">
<ul class="pagination">
{% if tdata.has_previous %}
<li class="paginate_button previous " aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
<a href="?page={{ tdata.previous_page_number }}">上一页</a>
</li>
{% else %}
<li class="paginate_button previous disabled " aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
<a>上一页</a>
</li>
{% endif %}
{% for page in tdata.paginator.page_range %}
{% limit_page tdata.number page %}
{% endfor %}
{% if tdata.has_next %}
<li class="paginate_button previous " aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
<a href="?page={{ tdata.next_page_number }}">下一页</a>
</li>
{% else %}
<li class="paginate_button previous disabled " aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
<a>下一页</a>
</li>
{% endif %}
</ul>
</div>
</div>
templatetag
from django import template
from django.utils.html import format_html
register = template.Library()
@register.simple_tag
def limit_page(current_page, pg):
scope = abs(current_page - pg)
if scope < 3:
if current_page == pg:
page_re = """<li class="paginate_button previous active"
aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
<a > %s </a>
</li>""" % pg
else:
page_re = """<li class="paginate_button previous "
aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
<a href="?page= %s "> %s </a>
</li>""" % (pg, pg)
return format_html(page_re)
else:
return ""
views:
from django.core.paginator import Paginator
from django.core.paginator import EmptyPage
from django.core.paginator import PageNotAnInteger
def page_t(request):
page = request.GET.get("page")
tdata = models.Tpage.objects.all()
paginator = Paginator(tdata, 2) # 每页多少条数据
try:
tdata = paginator.page(page) # 返回 page(页数)的数据
except PageNotAnInteger:
tdata = paginator.page(1) # 第一页
except EmptyPage:
tdata = paginator.page(paginator.num_pages) # 最后一页
return render(request, "table.html", {"tdata": tdata})
Python之django自带的分页功能的更多相关文章
- django rest framework实现分页功能
在web开发中很多需求都需要实现分页功能,然而 Django Rest Framework 自带的分页功能,只能在 mixins.ListModelMixin and generics.Generic ...
- Ecmall系统自带的分页功能
在Ecmall的二次开发中,分页是必不可少的.这个系统已经自带了分页功能,下面来看看如何使用这个分页. 下面是一个自定义的类,用于查看订单的详细情况.关键在于get_order_data()这个方法, ...
- django高级应用(分页功能)
django高级应用(分页功能) 1.原生分页应用 前端html代码 <!DOCTYPE html> <html lang="en"> <head&g ...
- django内置的分页功能
django内置的分页功能 # 先导入需要查询的模型类 from game.models import Score # 导入内置的分页功能 from django.core.paginator imp ...
- django中如何实现分页功能
1.在html页面中导入js文件和css文件 <link rel="stylesheet" href="../../../static/css/jquery.pag ...
- Django【进阶】分页功能Pagination
项目中,我们需要很多非业务逻辑的功能,例如分页功能,而且此类功能移植性很好,可以在不同的项目中使用,所以整理好这些功能会一定程度上提高开发效率,下面是分页功能代码,使用时,可单独放在utils目录 & ...
- python django 之 django自带的分页
1. 例1: 基础的分页 1). vim app01/views.py def users(request): from django.core.pagina ...
- GridView自带的分页功能实现
要实现GrdView分页的功能操作如下:1.更改GrdView控件的AllowPaging属性为true.2.更改GrdView控件的PageSize属性为 任意数值(默认为10)3.更改GrdVie ...
- Ecmall系统自带的分页功能使用
在控制器如果没有定义相关模型,直接使用sql语句的话,直接使用如下语句. 即: public $db; $this->db = &db(); //然后开始使用分页类 $sql='sele ...
随机推荐
- JavaScript unshift()怎样添加数据的?
var a = new Array(); a.unshift("red", "green"); a.unshift("black"); 这个 ...
- future3.2 Tomcat启动时错误:Cannot rename original file to ...
其日志中第一个警告如下: 警告: Unexpected exception resolving reference java.io.IOException: Cannot rename origina ...
- python学习之老男孩python全栈第九期_数据库day002知识点总结 —— MySQL数据库day2(全部)
一. 复习1. MySQL: - 服务端 - 客户端2. 通信交流 - 授权 - SQL语句 - 数据库 创建数据库: create database db1 default charset utf8 ...
- LOJ #2985. 「WC2019」I 君的商店
传送门 搬题解QwQ 首先最大值一定为 \(1\),直接扫一遍两两比较 \(O(2N)\) 求出最大值 设最大值位置为 \(a\),对于任意两个没有确定的位置 \(x,y\) 询问 \([a,x+y] ...
- java 对象
对象可以看成是静态属性和动态属性的封装体.静态属性——成员变量:动态属性——方法. 1.汇编语言是对机器语言的抽象. 2.面向过程的语言是对汇编语言的抽象.属性和方法分离,不是封装在一起的,复用性 ...
- iframe内存释放
Ext 核心开发人员Jack的回答是,TabPanelItem在关闭时并不会对自定义到tab中的元素做特殊处理,这部分工作必须在控件外来完成.另一方面, 相关资料称IE在iframe元素的回收方面存在 ...
- 传递命令行参数示例代码 (C 和 Python)
C语言 在 C 语言中, 使用 main 函数的输入参数 argc 和 argv 传入命令行参数. argc 为 int 类型, 表示传入命令行参数的个数 (argument count); argv ...
- Debian 版本历史
Production Releases Version Code name Release date End of life date 8.0 jessie April 25th 2015 7.0 ...
- Java中对文件的序列化和反序列化
public class ObjectSaver { public static void main(String[] args) throws Exception { /*其中的 D:\\objec ...
- 数据库复制 Nacicate Premium
之前都是“备份-还原”,抑或“导出-导入”.今天在将SqlServer中的数据导入到MySql中时发现了一个非常方便的方法,无需任何繁琐的配置和操作.废话少说,进入正题: 工具:Navicat Pre ...