python前端如何实现_python2.0_day19_前端分页功能的实现

我们前面完成的客户纪录展示,只有4条,如果有上百条就不能在1页中全部展示了,那样是不人性化的.另外一次性取出来,数据量也比较大.

假如现在有95条数据,我们想实现一个每页展示20条,那就分为5页.假如我们实现了,那么前端每一次请求就需要给后台提供参数了.这个参数就是告诉views里的视图函数我取第几页.

需求分析:

95条,每页20条

第一次请求 返回20条,并且后端返回当前返回是第几页 ,所以第一次返回是1

点击下一页 1+1=2 ,把2传给后端,后端拿到后在把第二页的内容返回给前端,并且把当前返回的页这里是2,返回给前端.

按照这个需求,我们自己写,也是很容易实现的(这是对于老手),但是这个分页功能属于一个常用而且通用的功能,Django就提供了Paginator模块来实现后台分页的功能.

Django提供的是后台分页的功能,前端要使用bootstrap中的分页示例代码

我们先看看Django中处理分页的模块都有哪些方法:

$python3.5manage.py shell>>> fromdjango.core.paginator import Paginator # 导入Paginator>>> objects = ['john','paul','george','ringo']>>> p = Paginator(objects,2) # 生成一个分页的实例,两个参数(objects是列表,2代表的是每2个元素分成一页.)

那我们来看看p这个实例有几个方法

>>>p.count # 查看有多少个元素4

>>>p.num_pages # 查看总共有几页2

>>>type(p.page_range)

>>> p.page_range # 当我们想循环每一页时就需要用到这个. for num in p.page_range:page = p.page(1)

range(1, 3)>>> page1 = p.page(1) # p.page(num) 取第几页>>>page1 # page1 显示这事第几页

>>>page1.object_list # 显示页里面的元素,以列表的方式

['john', 'paul']>>>p.object_list # 显示p实例里有多少个元素

['john', 'paul', 'george', 'ringo']>>> page2 = p.page(2) # 第二页>>>page2.object_list # 查看第二页有多少个元素

['george', 'ringo']>>>page2.has_next() # 查看当前页是不是有下一页,如果有返回True,如果没有Flase

False>>>page2.has_previous() # 查看当前页是不是有上一页,如果有返回True,如果没有返回False

True>>>page2.has_other_pages() # 查看除了当前页之外还有没有其它页,如果有返回True,如果没有返回False

True>>>page1.next_page_number() # 查看当前页的下一页的页码2

>>>page2.next_page_number() # 查看当前页的下一页的页码,如果没有则报错

Traceback (most recent call last):

......

django.core.paginator.EmptyPage: That page contains no results>>>page2.previous_page_number() # 查看当前页的上一页的页码.1

>>>page1.previous_page_number() # 查看当前页的上一页的页码,如果没有则报错

Traceback (most recent call last):

......

django.core.paginator.EmptyPage: That page numberis less than 1

>>>page1.start_index() # 查看当前页中,第一个元素在总列表的索引值1

>>>page2.start_index() # 查看当前页中,第一个元素在总列表的索引值3

>>>page1.end_index() # 查看当前页中,最后一个元素在总列表的索引值2

>>>page2.end_index() # 查看当前页中,最后一个元素在总列表的索引值4

>>> p.page(0) # 当所取页超出p.page_range()范围,就会报错了

Traceback (most recent call last):

...

django.core.paginator.EmptyPage: That page numberis less than 1

Django分页的官网

https://docs.djangoproject.com/en/1.9/topics/pagination/

我们来看下后台中到底如何使用,我们从django中查看有详细的示例代码.按照这些示例代码完全没问题

我们在crm/views.py文件中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值