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})
  • 相关阅读:
    .Net C# ASP.Net和ADO.Net
    如何学习.Net的步骤
    PHP5.2.17版本 fgetcsv函数 读取中文bug
    大数据入门至精通视频集
    Rethinking Table Recognition using Graph Neural Networks
    GRAPH ATTENTION NETWORKS(GAT)图注意力网络
    六个步骤快速学习难以掌握的资料
    学会总结
    数据结构学习-AVL平衡树
    数据结构学习-BST二叉查找树 : 插入、删除、中序遍历、前序遍历、后序遍历、广度遍历、绘图
  • 原文地址:https://www.cnblogs.com/wspblog/p/6813416.html
Copyright © 2011-2022 走看看