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-分页(非海量数据)的更多相关文章

  1. Django分页的实现

    Django分页的实现 Django ORM  分页介绍 分页是网页浏览中常见到的一种形式,在数据量较大时,一个页面显示不全,采取分割数据由用户选择进行显示的方式. 基本实现 技术点 通过切片得到数据 ...

  2. Django 分页查询并返回jsons数据,中文乱码解决方法

    Django 分页查询并返回jsons数据,中文乱码解决方法 一.引子 Django 分页查询并返回 json ,需要将返回的 queryset 序列化, demo 如下: # coding=UTF- ...

  3. django 分页(2) 使用类 页码显示

    django 分页显示页码 views.py 显示11页码 ) < 起始位置 - 10总页数 else 总页数 > IF 当前页 小于 起始位置 结束页 IF 当前页 大于 IF 如果结束 ...

  4. Django 分页功能

    Django 分页功能比较强大,这边是结合官网的内容写的可以参考 https://docs.djangoproject.com/en/1.9/topics/pagination/ 分页命令行练习案列 ...

  5. 原生的 django 分页

    原始的 django 分页 # 基本 写法 class Paginator(object): def __init__(self, object_list, per_page, orphans=0, ...

  6. django 分页组件

      一.仿django分页功能自己实现 urls.py 1 2 3 4 5 6 7 8 9 from django.conf.urls import url from django.contrib i ...

  7. Django分页(二)

    Django分页(二) 要求 .设定每页显示数据条数 # # .用户输入页码(第一页.第二页...) # # .设定显示多少页号 # # .获取当前数据总条数 # # .根据设定显示多少页号和数据总条 ...

  8. Django分页(一)

    Django分页(一) 手动实现简单分页 HTML <!DOCTYPE html> <html lang="en"> <head> <me ...

  9. django 分页出现 UnorderedObjectListWarning 错误

    django 分页出现此错误: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unorde ...

  10. 2019.03.20 mvt,Django分页

    MVT模式   MVT各部分的功能:   M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理.       V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返 ...

随机推荐

  1. python笔记11

    今日内容 函数小高级 lambda 表达式 内置函数 内容回顾 函数基本结构 参数 形参 基本参数:def func(a1,a2):pass 默认值:def func(a1,a2=123):pass ...

  2. Spring注解开发系列Ⅱ --- 组件注册(下)

    1.@Import注册组件 @Import主要功能是通过导入的方式实现把实例加入springIOC容器中, /** * 给容器注册组件 * 1.包扫描+组件标注注解(@Controller,@Serv ...

  3. parzen 窗的matlab实现

    用一下程序简单实现使用parzen窗对正态分布的概率密度估计: (其中核函数选用高斯核) %run for parzen close all;clear all;clc; x=normrnd(0,1, ...

  4. Dockers 部署 MongoDB + mongo-express

    1. 拉取 Mongo 镜像 docker pull mongo: 2.  运行镜像 docker run -d --name mongodb --volume /usr/local/mongodat ...

  5. 人生需要Plan B

    天有不测风云,人有祸兮旦福.2020年,刚打开就是地狱模式! 武汉加油,中国加油! 新冠状肺炎的强传播性,让人们不得不乖乖待在家,工地开不了工,白领不能上班,农村封村,城市封小区.人们每天在一个小范围 ...

  6. Java properties文件集

    log4j: log4j.rootLogger=info, console, log, error ###Console ### log4j.appender.console = org.apache ...

  7. 【MySQL 原理分析】之 Trace 分析 order by 的索引原理

    一.背景 昨天早上,交流群有一位同学提出了一个问题.看下图: 我不是大佬,而且当时我自己的想法也只是猜测,所以并没有回复那位同学,只是接下来自己做了一个测试验证一下. 他只简单了说了一句话,就是同样的 ...

  8. 2018icpc南京网络赛-E AC Challenge(状压+dfs)

    题意: n道题,每道题有ai和bi,完成这道题需要先完成若干道题,完成这道题可以得到分数t*ai+bi,其中t是时间 1s, n<=20 思路: 由n的范围状压,状态最多1e6 然后dfs,注意 ...

  9. 【TensorFlow】TensorFlow基础 —— 模型的保存读取与可视化方法总结

    TensorFlow提供了一个用于保存模型的工具以及一个可视化方案 这里使用的TensorFlow为1.3.0版本 一.保存模型数据 模型数据以文件的形式保存到本地: 使用神经网络模型进行大数据量和复 ...

  10. 使用jQuery的插件jquery.corner.js来实现圆角效果-详解

    jquery.corner.js可以实现各种块级元素的角效果,以下为演示,详见jquery_corner.html中的注释部分,并附百度盘下载 jquery_corner.html代码如下: < ...