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})
  • 相关阅读:
    求约数的个数-牛客
    成绩排序 -- 牛客
    SpringBoot学习笔记4-整合Jdbc Template-Mybatis-多数据源-事务管理-JPA
    SpringBoot学习笔记3-自定义拦截器-全局异常处理-Freemarker-Thymeleaf-定时任务调度
    SpringBoot学习笔记2-日志管理-开发模式-web开发-FastJson
    SpringBoot学习笔记1-简介-全局配置文件-starter-profiles-自动配置原理
    将Ueditor文件上传至OSS
    nouveau :failed to create kernel chanel,-22
    教你怎么炼鸡肉
    教你怎么写猜年龄游戏
  • 原文地址:https://www.cnblogs.com/wspblog/p/6813416.html
Copyright © 2011-2022 走看看