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})
    感谢关注

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号