django分页使用方法

简介:

   当我们从后台数据库读取数据,出现太多的时候会很难看,这个时候就要用到分页功能,django带有的分页模块非常好用,这几天在研究,今天跟大家分享一下直接启动代码:

[root@mail oms]# ./manage.py shell      #启动后台

>>> from django.core.paginator import Paginator    导入模块
>>> objects = ['xiaoluo','test','huihui','xiaoxiao']    #开始定义一个列表
>>> p = Paginator(objects,2)          #objects以2为分割单位
>>> p.count                          #统计总共多少行
4
>>> p.num_pages                     #统计总共的页数
2
>>> p.page_range                    #序号
[1, 2]
>>> page1 = p.page(1)               #第一页序号
>>> page1
<Page 1 of 2>

>>> page1.object_list              #详细信息
['xiaoluo', 'test']
>>> page1.has_next()              #是否有下一页
True
>>> page1.has_previous()          #是否有上一页
False

>>> page2= p.page(2)             #打印第二页
>>> page2.object_list
['huihui', 'xiaoxiao']

>>> page2.previous_page_number()   #上一页的页面号数
1

>>> page1.next_page_number()       #下一页
2

>>> page1.start_index()          #这一页开始的序号
1
>>> page1.end_index()  
2


实例:下面是一段后台views的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def  server_asset_list(request):
         server_asse  =  ServerAsset.objects. all ()
         paginator  =  Paginator(server_asse, 10 )
         try :
             page  =  int (request.GET.get( 'page' , '1' ))
         except  ValueError:
             page  =  1
         try :
             server_asse  =  paginator.page(page)
         except  (EmptyPage,InvalidPage):
             server_asse  =  paginator.page(paginator.num_pages)
         return  render_to_response( 'server_asset_list.html' ,{ 'server_asse' :server_asse})
页面html模板:
  { % if  server_asse.has_previous % }
  <a href = "?page={{ server_asse.previous_page_number }}" >上一页< / a>
  { % endif % }
     <span  class = "current" >
  第{{ server_asse.number }}页,共{{ server_asse.paginator.num_pages }}页< / span> 
  { % if  server_asse.has_next  % }
  <a href = "?page={{ server_asse.next_page_number }}" >下一页< / a>
  { % endif % }
 
页面效果展示:

wKioL1UCVK6h2qqMAACsD8u6N6w253.jpg










本文转自 小罗ge11 51CTO博客,原文链接:http://blog.51cto.com/xiaoluoge/1620010,如需转载请自行联系原作者
目录
相关文章
|
JavaScript 数据库 Python
django实现增删改查分页接口
django实现增删改查分页接口
|
中间件 关系型数据库 Shell
Django容易被遗忘却无比重要的框架默认文件介绍及使用方法
Django容易被遗忘却无比重要的框架默认文件介绍及使用方法
186 0
|
存储 缓存 API
Django缓存的使用方法
Django缓存的使用方法
218 0
|
前端开发 关系型数据库 Python
Django入门到放弃之分页器
Django入门到放弃之分页器
|
安全 中间件 项目管理
Django 后端架构开发:分页器到中间件开发
Django 后端架构开发:分页器到中间件开发
184 1
|
JSON 搜索推荐 数据库
Django REST framework数据展示技巧:分页、过滤与搜索的实用配置与实践
Django REST framework数据展示技巧:分页、过滤与搜索的实用配置与实践
|
数据安全/隐私保护 Python
必知的技术知识:django自定义分页器
必知的技术知识:django自定义分页器
|
前端开发 数据库 Python
Python Django项目下的分页和筛选查询
在Django中实现分页功能,视图函数通过`Paginator`处理数据,每页显示10条记录。URL配置支持带参数和不带参数的分页请求。前端模板使用for循环展示分页数据,包括商品信息和状态按钮,并利用分页组件导航。筛选查询视图根据GET请求的`state`参数过滤上架或下架产品,同样实现分页功能。前端添加状态选择下拉框,分页链接携带查询参数`state`确保筛选状态在翻页时保持。
181 0
【Django学习】(十二)GenericAPIView_过滤_排序_分页(上)
【Django学习】(十二)GenericAPIView_过滤_排序_分页
【Django学习】(十二)GenericAPIView_过滤_排序_分页(上)
|
Python
28 Django高级- 分页
28 Django高级- 分页
121 0