需求:

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

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

  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

最新文章

  1. 配置rsync服务,数据同步。
  2. 精简的javascript下throttle和debounce代码
  3. visual studio 局域网远程调试web项目
  4. 黄聪:PHP json_encode中文乱码解决方法
  5. range,shuffle,str_shuffle
  6. 由CHAR(2)引发的BUG
  7. NGINX(五)模块
  8. 禁用USB存储设备(不重启)
  9. Gson序列化对象如何忽略字段
  10. LOJ #6261 一个人的高三楼
  11. 使用SpringSecurity
  12. Matlab如何循环读取文件
  13. 导出Excel(导出一个模版)
  14. C++进程间通信之共享内存
  15. APP-7-百度地图移动轨迹
  16. 本地没问题 服务器 提示 Server Error in &#39;/&#39; Application
  17. C++中的类继承之单继承&amp;多继承&amp;菱形继承
  18. HDU 5861 Road(线段树 区间修改 单点查询)
  19. mysql 错误总结 和FROM_UNIXTIME用法
  20. 第6章 网页解析器和BeautifulSoup第三方插件

热门文章

  1. JDBC详解系列(三)之建立连接(DriverManager.getConnection)
  2. Linux下设置SSH端口
  3. nmon进行性能分析
  4. Python开发之路
  5. ERP中自定义报表制作流程
  6. Windows和Linux下换行的不同
  7. ppt的那些小事(一)
  8. 管理 MariaDB 用户账户
  9. 安装配置Oracle 12c RAC
  10. DAY3-“忙里偷闲”找你玩耍2018-1-11