zoukankan      html  css  js  c++  java
  • Django_实现分页

    需求:

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

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

    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

  • 相关阅读:
    Cisco ASR1002-X告警处理
    WLC5520无法通过无线客户端进行网管故障解决
    一键分享mob,方法二
    Java中堆内存和栈内存详解
    linux.linuxidc.com
    android中shape的使用(android:angle小解)
    Activity的Launch mode详解 :standard(默认), singleTop, singleTask和 singleInstance
    Android studio个人常用快捷键
    Android 公告新闻消息资讯之垂直滚动效果
    数据库设计相关
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/7462048.html
Copyright © 2011-2022 走看看