需求:

  对于有很多数据,并不希望一次性全部展现在一个页面,需要一个分页的,定好每一页显示的内容

那,如何满足这个需求呢?

  1. 通过第三方模块  django-pure-pagination

    pip install django-pure-pagination
  2. setting配置,把这个模块添加到app中
    # 添加分页app
    INSTALLED_APPS = (
    ...
    'pure_pagination',
    ) # 分页app配置
    PAGINATION_SETTINGS = {
    # 总共显示多少个提示页面
    'PAGE_RANGE_DISPLAYED': 10,、
    # 最前面和最后面显示多少页面提示
    'MARGIN_PAGES_DISPLAYED': 2,
    # 当页面不存在时候,不返回404而是显示第一页
    'SHOW_FIRST_PAGE_WHEN_INVALID': True,
    }
  3. view中把多个结果的查询对象交个pure-pagination
    # 进行分页
    try:
    page = request.GET.get('page', 1)
    except PageNotAnInteger:
    page = 1
    p = Paginator(all_courses, 6, request=request)
    all_courses = p.page(page)
    # all_courses 是表查询的结果,把all_courses传递到模版
  4. template中通过object_list获取结果
                    <div id="inWindow">
    <div class="tab_cont " id="content">
    <div class="group_list"> {% for course in all_courses.object_list %}
    <div class="box">
    <a href="{% url 'course:detail' course.id %}">
    <img width="280" height="350" class="scrollLoading" src="{{ MEDIA_URL }}{{ course.image }}"/>
    </a>
    <div class="des">
    <a href="{% url 'course:detail' course.id %}">
    <h2>{{ course.name }}</h2>
    </a>
    <span class="fl">时长:<i class="key">{{ course.learn_times }}</i></span>
    <span class="fr">学习人数:{{ course.students }}  </span>
    </div>
    <div class="bottom">
    <a href="course-detail.html"><span class="fl">{{ course.courser_org.name }}</span></a>
    <span class="star fr notlogin
    " data-favid="15">
    {{ course.fav_nums }}
    </span>
    </div>
    </div> {% endfor %} </div>
    <div class="pageturn">
    <ul class="pagelist"> {# 显示上一页,没有不显示#}
    {% if all_courses.has_previous %}
    <li class="long"><a href="?{{ all_courses.previous_page_number.querystring }}">上一页</a></li>
    {% endif %} {# 中间显示页面#}
    {% for page in all_courses.pages %}
    {% if page %}
    {% ifequal page all_courses.number %}
    <li class="active"><a href="?{{ page.querystring }}">{{ page }}</a></li>
    {% else %}
    <li><a href="?{{ page.querystring }}" class="page">{{ page }}</a></li>
    {% endifequal %}
    {% else %}
    <li><a href="" class="none">...</a></li>
    {% endif %}
    {% endfor %} {# 判断是否有下一页,有的话显示下一页,没有不显示#}
    {% if all_courses.has_next %}
    <li class="long"><a href="?{{ all_courses.next_page_number.querystring }}">下一页</a></li>
    {% endif %} </ul>
    </div>
    </div>
    </div>

    Githup地址 : https://github.com/jamespacileo/django-pure-pagination

Django_实现分页的更多相关文章

  1. Django_分页

    目录 基本语法 示例 示例1 使用django内置Paginator模块 示例2 改写Paginator 示例3 自定义pager组件 示例3.1 objs与pager各自单独使用 示例3.2 obj ...

  2. Django_静态文件/中间件/分页

    1. 静态文件配置 2. 中间件 在不修改源代码的前提下,动态的逻辑控制代码执行(装饰器) 2.1 切入函数 2.2 自定义中间件 中奖 访问限制 2.3 分页 paginator 常见错误

  3. 记一次SQLServer的分页优化兼谈谈使用Row_Number()分页存在的问题

    最近有项目反应,在服务器CPU使用较高的时候,我们的事件查询页面非常的慢,查询几条记录竟然要4分钟甚至更长,而且在翻第二页的时候也是要这么多的时间,这肯定是不能接受的,也是让现场用SQLServerP ...

  4. js实现前端分页页码管理

    用JS实现前端分页页码管理,可以很美观的区分页码显示(这也是参考大多数网站的分页页码展示),能够有很好的用户体验,这也是有业务需要就写了一下,还是新手,经验不足,欢迎指出批评! 首先先看效果图: 这是 ...

  5. JdbcTemplate+PageImpl实现多表分页查询

    一.基础实体 @MappedSuperclass public abstract class AbsIdEntity implements Serializable { private static ...

  6. MVC如何使用开源分页插件shenniu.pager.js

    最近比较忙,前期忙公司手机端接口项目,各种开发+调试+发布现在几乎上线无问题了:虽然公司项目忙不过在期间抽空做了两件个人觉得有意义的事情,一者使用aspnetcore开发了个人线上项目(要说线上其实只 ...

  7. NET Core-TagHelper实现分页标签

    这里将要和大家分享的是学习总结使用TagHelper实现分页标签,之前分享过一篇使用HtmlHelper扩展了一个分页写法地址可以点击这里http://www.cnblogs.com/wangrudo ...

  8. 套用JQuery EasyUI列表显示数据、分页、查询

    声明,本博客从csdn搬到cnblogs博客园了,以前的csdn不再更新,朋友们可以到这儿来找我的文章,更多的文章会发表,谢谢关注! 有时候闲的无聊,看到extjs那么肥大,真想把自己的项目改了,最近 ...

  9. php实现的分页类

    php分页类文件: <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 pr ...

随机推荐

  1. JAVA定时任务调度之Timer入门详解(一)

    所谓的Timer,打开jdk的api文档可以看到它的定义:一种工具,线程用其安排以后在后台线程中执行的任务.可安排任务执行一次,或者定期重复执行.通俗点讲就是说:有且仅有一个后台线程对多个业务线程进行 ...

  2. tomcat配置https协议

    tomcat配置https协议 1.找到本地jdk底下的bin目录,bin目录底下存在文件keytool.exe(在bin目录下空白处,按住shift右击,打开命令窗口,如下图) 2.在cmd的命令窗 ...

  3. js上传图片

    额    呆坐许久  感觉 有很多想写的  就是不知从何写起..贼尴尬. 其实 我平时项目中 基本上传图片什么的  都是跟着from 表单 一起提交给后台的 实行起来 简单暴力 连图片预览的都没有写 ...

  4. Windows程序设计学习笔记(四)自绘控件与贴图的实现

    Windows系统提供大量的控件供我们使用,但是系统提供的控件样式都是统一的,不管什么东西看久了自然会厌烦,为了使界面更加美观,添加一些新的东西我们需要自己绘制控件. 控件在默认情况下并不进行自绘,如 ...

  5. windows 纤程

    纤程本质上也是线程,是多任务系统的一部分,纤程为一个线程准并行方式调用多个不同函数提供了一种可能,它本身可以作为一种轻量级的线程使用.它与线程在本质上没有区别,它也有上下文环境,纤程的上下文环境也是一 ...

  6. google gflag使用方法举例

    前言: 1. gflag是一种命令行编码参数解析工具,开源地址: https://github.com/gflags/gflags , 在caffe框架也使用了gflag来编码解析命令行. 那么什么是 ...

  7. UVA10341-Solve It-二分查找

    二分查找 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好:其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表.首先,假设表中元素是按升序 ...

  8. BZOJ 1509: [NOI2003]逃学的小孩

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1509 直接求出树的直径,枚举每个点更新一遍答案. #include<cstring> ...

  9. Matrix Chain Multiplication(表达式求值用栈操作)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1082 Matrix Chain Multiplication Time Limit: 2000/100 ...

  10. ARM的GPIO配置