zoukankan      html  css  js  c++  java
  • Python之django自带的分页功能

    前端页面:

    	                <div class="col-sm-6">
                        <div class="dataTables_paginate paging_simple_numbers" id="dataTables-example_paginate">
                            <ul class="pagination">
    
                                {% if tdata.has_previous %}
                                    <li class="paginate_button previous " aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
                                        <a href="?page={{ tdata.previous_page_number }}">上一页</a>
                                    </li>
    
                                 {% else %}
                                    <li class="paginate_button previous disabled " aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
                                        <a>上一页</a>
                                    </li>
                                {% endif %}
    
                                {% for page in tdata.paginator.page_range %}
                                    {% limit_page tdata.number page %}
                                {% endfor %}
                                {% if tdata.has_next %}
                                    <li class="paginate_button previous " aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
                                    <a href="?page={{ tdata.next_page_number }}">下一页</a>
                                    </li>
    
                                {% else %}
                                    <li class="paginate_button previous disabled " aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
                                        <a>下一页</a>
                                    </li>
                                {% endif %}
                            </ul>
                        </div>
                    </div>
    

    templatetag

    from  django import template
    from django.utils.html import format_html
    
    
    register = template.Library()
    
    @register.simple_tag
    def limit_page(current_page, pg):
        scope = abs(current_page - pg)
    
        if scope < 3:
            if current_page == pg:
                page_re = """<li class="paginate_button previous active"
                                aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
                                <a > %s </a>
                             </li>""" % pg
    
            else:
                page_re = """<li class="paginate_button previous "
                                aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
                                <a href="?page= %s "> %s </a>
                             </li>""" % (pg, pg)
            return format_html(page_re)
        else:
            return ""
    

    views:

            from django.core.paginator import Paginator
            from django.core.paginator import EmptyPage
            from django.core.paginator import PageNotAnInteger
    	def page_t(request):
        page = request.GET.get("page")
    
        tdata = models.Tpage.objects.all()
    
        paginator = Paginator(tdata, 2)  # 每页多少条数据
    
        try:
            tdata = paginator.page(page)  # 返回 page(页数)的数据
    
        except PageNotAnInteger:
            tdata = paginator.page(1)  # 第一页
    
        except EmptyPage:
            tdata = paginator.page(paginator.num_pages)  # 最后一页
    
        return render(request, "table.html", {"tdata": tdata})
  • 相关阅读:
    Cookie
    servletContext组件
    Servlet的定义及生命周期
    导引:servlet&Jsp的经典模式
    一个servlet server,由移植自Tomcat的连接器模块和自编写的container模块代码组成
    一个servlet web server,由移植自Tomcat的完整的connector模块和简化的Container(取代servlet处理器)组成
    python初识
    Maekdown光速习得
    实例学习——爬取简书网用户动态
    使用CSDN-markdown编辑器粘贴代码块时崩溃问题解决
  • 原文地址:https://www.cnblogs.com/wspblog/p/6813416.html
Copyright © 2011-2022 走看看