django-分页(非海量数据)
views.py
class AnalysisDataHandler(View):
def get(self, request):
analysis_data = MonitorCenterDataAnalysis.objects.all().order_by('create_time').reverse()
paginator = Paginator(analysis_data, 2) # 每页显示10条数据
num_pages = paginator.num_pages # 总页数
page = request.GET.get('page')
if not page:
page = 1
else:
page = int(page)
#分页方式:以5页为基准
#一:少于5页
#无:页码按钮及左右侧翻页按钮都不存在
#有:左右侧按钮至少存在一个,并且有全部页码按钮
#二:大于等于5页
#左侧、右侧翻页按钮至少一个存在,并且有5页码按钮
try:
analysis_data = paginator.page(page) if num_pages < 5:
page_num_list = [i for i in range(1, num_pages+1)]
elif page in [1, 2, 3]:
page_num_list = [1, 2, 3, 4, 5]
elif page in [num_pages-1, num_pages-2, num_pages]:
page_num_list = [i for i in range(num_pages-4, num_pages+1)]
else:
page_num_list = [i for i in range(page-2, page+3)]
analysis_data.page_num_list = page_num_list
except PageNotAnInteger:
# 如果page不是一个整数,则展示第一页。
analysis_data = paginator.page(1)
except EmptyPage:
# 如果page不在范围内(例如,9999),则展示结果的最后一页。
analysis_data = paginator.page(paginator.num_pages) return render(request, 'flowmgr/analysis_data.html', {'analysis_data': analysis_data})
analysis_data.html
<div style="float: right">
<ul class="pagination">
{% if analysis_data.has_previous %}
<li>
<a href="?page={{ analysis_data.previous_page_number }}" aria-label="上一页">
<span aria-hidden="true">«</span>
</a>
</li>
{% endif %}
{% for index in analysis_data.page_num_list %}
{% if index == analysis_data.number %}
<li class="disabled"><a href="?page={{ index }}">{{ index }}</a></li>
{% else %}
<li class="active"><a href="?page={{ index }}">{{ index }}</a></li>
{% endif %}
{% endfor %}
{% if analysis_data.has_next %}
<li>
<a href="?page={{ analysis_data.next_page_number }}" aria-label="下一页">
<span aria-hidden="true">»</span>
</a>
</li>
{% endif %}
</ul>
</div
django-分页(非海量数据)的更多相关文章
- Django分页的实现
Django分页的实现 Django ORM 分页介绍 分页是网页浏览中常见到的一种形式,在数据量较大时,一个页面显示不全,采取分割数据由用户选择进行显示的方式. 基本实现 技术点 通过切片得到数据 ...
- Django 分页查询并返回jsons数据,中文乱码解决方法
Django 分页查询并返回jsons数据,中文乱码解决方法 一.引子 Django 分页查询并返回 json ,需要将返回的 queryset 序列化, demo 如下: # coding=UTF- ...
- django 分页(2) 使用类 页码显示
django 分页显示页码 views.py 显示11页码 ) < 起始位置 - 10总页数 else 总页数 > IF 当前页 小于 起始位置 结束页 IF 当前页 大于 IF 如果结束 ...
- Django 分页功能
Django 分页功能比较强大,这边是结合官网的内容写的可以参考 https://docs.djangoproject.com/en/1.9/topics/pagination/ 分页命令行练习案列 ...
- 原生的 django 分页
原始的 django 分页 # 基本 写法 class Paginator(object): def __init__(self, object_list, per_page, orphans=0, ...
- django 分页组件
一.仿django分页功能自己实现 urls.py 1 2 3 4 5 6 7 8 9 from django.conf.urls import url from django.contrib i ...
- Django分页(二)
Django分页(二) 要求 .设定每页显示数据条数 # # .用户输入页码(第一页.第二页...) # # .设定显示多少页号 # # .获取当前数据总条数 # # .根据设定显示多少页号和数据总条 ...
- Django分页(一)
Django分页(一) 手动实现简单分页 HTML <!DOCTYPE html> <html lang="en"> <head> <me ...
- django 分页出现 UnorderedObjectListWarning 错误
django 分页出现此错误: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unorde ...
- 2019.03.20 mvt,Django分页
MVT模式 MVT各部分的功能: M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理. V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返 ...
随机推荐
- SVN: 在Ecplise管理SVN资源库
Window->Show View->SVN
- 深入源码解析spring aop实现的三个过程
Spring AOP的面向切面编程,是面向对象编程的一种补充,用于处理系统中分布的各个模块的横切关注点,比如说事务管理.日志.缓存等.它是使用动态代理实现的,在内存中临时为方法生成一个AOP对象,这个 ...
- webpack入门系列1
一.什么是webpack?为什么要使用它? Webpack 是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源. 为什么我们要使用它呢?因 ...
- 全卷积网络FCN
全卷积网络FCN fcn是深度学习用于图像分割的鼻祖.后续的很多网络结构都是在此基础上演进而来. 图像分割即像素级别的分类. 语义分割的基本框架: 前端fcn(以及在此基础上的segnet,decon ...
- 《Android Studio实战 快速、高效地构建Android应用》--Android Studio操作
前言 摩尔定律:CPU的处理能力大约18个月翻一倍 Android&Java:想要在Android Studio中开发Android App,必须以充分了解Java为前提(Java流行的原因: ...
- tensorflow feed_dict()
import tensorflow as tf a=tf.Variable(100) b=tf.Variable(200) c=tf.Variable(300) update1=tf.assign(c ...
- Codeforces 977D Divide by three, multiply by two(拓扑排序)
Polycarp likes to play with numbers. He takes some integer number xx, writes it down on the board, ...
- How to collect TLOG usage status automatically ?
Yes , in SQLSERVER, we use "DBCC sqlperf(logspace)" to check transaction logfile status.Bu ...
- mongo 集群(副本)搭建过程记录
最近搭建mongo集群,回忆总结,作以记录.整个过程主要参考以下两篇文章,但是过程并不顺利,有些问题需要记录.https://www.cnblogs.com/dba-devops/p/7130710. ...
- Python常用库 - logging日志库
logging的简单介绍 用作记录日志,默认分为六种日志级别(括号为级别对应的数值) NOTSET(0) DEBUG(10) INFO(20) WARNING(30) ERROR(40) CRITIC ...