python分页功能_Python之django自带的分页功能

前端页面:

{% if tdata.has_previous %}

上一页

{% else %}

上一页

{% endif %}

{% for page in tdata.paginator.page_range %}

{% limit_page tdata.number page %}

{% endfor %}

{% if tdata.has_next %}

下一页

{% else %}

下一页

{% endif %}

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 = """

aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">

%s

""" % pg

else:

page_re = """

aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">

%s

""" % (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})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值