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

    分页实现思路:

    1.接口拉取库内数据,进行分页
    2.页面实现分页组件,切换不同链接

    一、接口实现:

    from django.core.paginator import Paginator
     
    p=Paginator(report.objects.order_by("-endtime"),20)  #对数据进行分页,默认每页20条数据
    pagenums=p.num_pages
     
    说明:
    1.使用Paginator类进行分页,使用方法【Paginator(列表,一页显示的内容个数)】
    例如:Paginator(report.objects.order_by("-endtime"),20)
    入参列表可以是个models查询后的django QuerySet对象
     
    2.Paginator对象的num_pages返回查询结果的总个数,可以用来展示分页的页数
     
    更多Paginator的操作,可以参考下面的 文档:
     

    二、html分页展示

    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>index</title>
    
        <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
        <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" >
        <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap-theme.min.css">
        <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    </head>
    <body>
    <ul class="pagination" >
        {% if pagenum > 1%}
           <li><a href="{% url 'reports' %}?pagenum={{ pagenum|add:-1 }}">&laquo;</a></li>
        {% else %}
           <li><a href="">&laquo;</a></li>
        {% endif %}
        {% for currentpagenum in  reportinfos.pagenums%}
            {% if currentpagenum == pagenum %}
               <li><a href="{% url 'reports' %}?pagenum={{ currentpagenum }}" style="background-color: #5bc0de">{{ currentpagenum }}</a></li>
            {% else %}
               <li><a href="{% url 'reports' %}?pagenum={{ currentpagenum }}">{{ currentpagenum }}</a></li>
            {% endif %}
        {% endfor %}
        {% if pagenum < reportinfos.maxpagenum %}
            <li><a href="{% url 'reports' %}?pagenum={{ pagenum|add:1 }}">&raquo;</a></li>
        {% else %}
            <li><a href="">&raquo;</a></li>
        {% endif %}
    </ul>
    </body>
    
    </html>
     
     
    说明:
    1.分页使用了bootstrap的样式,所以引入了相关的js
    2.分页的按钮的连接点击跳转到对应页面加参数pagenum(/xxx?pagenum=xxx)(html中的pagenum为渲染时传入的总页码个数)
    3.前一页和后一页按钮,判断了是否超过最小页码1和最大页码边界,如果不超过跳转链接在当前页码下+1或-1,如果超出边界则不能点击
     
    这里应用了django模板中变量的加减法,加法【{{ 变量名|add:数字 }}】,减法【{{ 变量名|add:-数字 }}】
    减法只是数字前加负号,注意|和add以及:左右没有空格
     
     
     
     
     
  • 相关阅读:
    Linux指令集
    [日记]贝鲁特煎熬第32天
    2019南京区域赛ABCHJK题解 & KMbfs(O(n^3))板子
    欧拉筛质数以及四大积性数论函数(欧拉函数、莫比乌斯函数、约数个数函数、约数和函数)
    简短的自我介绍
    BSTTreap名次树数组&指针实现板子 Ver1.0
    2019银川区域赛BDFGHIKN题解
    安装vs2010
    SPEmailEventReceiver 之导入附件EXCEL
    为incoming mail绑定事件,SPEmailEventReceiver
  • 原文地址:https://www.cnblogs.com/meitian/p/6912702.html
Copyright © 2011-2022 走看看