需求:

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

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

  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. Android WebView存在跨域访问漏洞(CNVD-2017-36682)介绍及解决

    Android WebView存在跨域访问漏洞(CNVD-2017-36682).攻击者利用该漏洞,可远程获取用户隐私数据(包括手机应用数据.照片.文档等敏感信息),还可窃取用户登录凭证,在受害者毫无 ...

  2. hadoop+hive+spark搭建(二)

    上传hive软件包到任意节点 一.安装hive软件 解压缩hive软件包到/usr/local/hadoop/目录下 重命名hive文件夹 在/etc/profile文件中添加环境变量 export ...

  3. 最新版solr7.2集群搭建详细步骤

    集群:高可用,备份,数据可分片 需要运行4个tomcat 1.tomcat端口号(默认占用8005,8009,8080三个端口) tomcat服务 占用端口 tomcat1 6005.6060.600 ...

  4. Java学习笔记6---字符串比较方法compareTo(String str)

    方法原型为int compareTo(String str),返回值为int型,参数为字符串类型. 下面是简单示例: /* * compareTo()返回参与比较的两个字符串的ascii码差值 * O ...

  5. C#中的异步学习

    C#中的异步 C#5.0版本发布有一个"主题那就是异步编程. 我们先创建一个windowForm窗体,实现下面效果,然后我们通过简单的案例对比同步和异步: 首先我们编写一个耗时方法: /// ...

  6. socket之粘包发生问题

    粘包 注意注意注意: res=subprocess.Popen(cmd.decode('utf-8'),shell=True,stderr=subprocess.PIPE,stdout=subproc ...

  7. 【转载】在Linux下,一个文件也有三种时间,分别是:访问时间、修改时间、状态改动时间

    在windows下,一个文件有:创建时间.修改时间.访问时间.而在Linux下,一个文件也有三种时间,分别是:访问时间.修改时间.状态改动时间. 两者有此不同,在Linux下没有创建时间的概念,也就是 ...

  8. 前端构建工具gulp之基本介绍

    1.基本介绍 gulp.js是一个自动化构建工具,是自动化项目的构建利器.可以对网站的资源进行优化,将开发过程中一些重复的任务通过执行命令自动完成.这样能很大的提高我们的工作效率. gulp.js是基 ...

  9. 连接WiFi工具类

    public class WifiConnect { WifiManager wifiManager; // 构造函数 public WifiConnect(WifiManager wifiManag ...

  10. 【转】Memory gates checking failed because the free memory***解决办法

    Issue: Vault users cannot connect. VLOGS show the following error: Memory gates checking failed beca ...