需求:

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

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

  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. 【转】Install libimobiledevice on Mac OSX

    About the App App name: libimobiledevice App description: Library to communicate with iOS devices na ...

  2. 深入理解ES6之—符号与符号属性

    在js已有的基本类型(字符串,数值,布尔型,null和undefined)之外,es6引入了一种新的基本类型:==符号(Symbol)==.符号起初被设计用于创建对象私有成员. 符号没有字面量形式,你 ...

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

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

  4. MariaDB日志审计 帮你揪出内个干坏事儿的小子

    Part1:谁干的? 做DBA的经常会遇到,一些表被误操作了,被truncate.被delete.甚至被drop.引起这方面的原因大多数都是因为人为+权限问题导致的.一些公共账户,例如ceshi账户, ...

  5. 【C#】发票助手二维码生成

    之前一起吃饭听说了发票助手这个东西,可以生成发票抬头的二维码,扫码就可以开票了. 官方也有个小程序的 [税务发票助手],微信中搜这个名字就可以了. 我准备在自己的小程序中也尝试一下,本来觉得只要拼接一 ...

  6. Python => ValueError: unsupported format character 'Y' (0x59)

    产生问题的原因是:SQL语句的'%Y-%m-%d'部分被再次解释为字符串格式,并抛出错误 解决方案一:字符串%形式进行替换 '%string' % string. '%Y-%m-%d'改写为'%%%% ...

  7. Inno Setup 自定义界面心得

    因为项目需要,需要打 windows 安装包,要求安装界面完全按照需求来.作为没接触过这块儿的服务端宝宝,在此期间踩了很多坑. 坑不提也罢,最终结果圆满,记录下与大部分网上PO出来的做法不太一样的小心 ...

  8. [翻译]QT core wallet manual 狗狗币核心钱包使用教程

    译注:比特币没赶上可以玩狗狗币啊,水电厂包不起可以用CPU挖啊.为了顺应时代潮流,了解一下区(fa)块(heng)链(cai)和加密货币技术,准备从研究狗狗币开始.网上找了一圈没有看到很好的入门级教程 ...

  9. CSRF跨站

    跨站请求伪造: 简单的说跨站请求伪造就是一些恶意的用户用自己的表单伪造网页实际的表单发送数据,接下来我就随便写一点: 跨站伪造的产生(form表单的methoud只有在等于post的时候才会有可能发生 ...

  10. 微信小程序登陆授权

    小程序前端代码 function WXlogin(){ wx.login({ success: function (code) { wx.getUserInfo({ success:function( ...