介绍
这篇文章将为大家详细讲解有关怎么在python中使用Django框架实现在网页端分页呈现数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
首先介绍Django中的paginator类.paginator是Django中提供的可以实现管理数据分页的类。
得到django.core import paginator
下面是本文用到的paginator中的属性和方法。
<强> paginator对象强>
1。构造:Paginator(列表,int):返回分页的整体对象。
2。page_range:返回页码列表[1、2、3、4…]
3。页面(num):返回num页的数据内容
<强>页对象强>
1。构造:Paginator对象的页面()方法返回页面对象。
2。数量:返回当前页的序号。
3。paginator:当前页面对象相关的paginator对象.page.paginator相当于paginator对象。
<>强。构造url。强>
#——urls . py - - - - - - 得到django.conf.urls import url import 观点 urlpatterns =, ( ,#这个url构造在根目录下 ,#定义为& # 39;信息/数字& # 39;是为了传一个页面序号为参数给视图函数 ,#视图函数接收到这个数字为参数后,就可以调用对应页的数据呈现 ,#,例如我们输入www.xxx.com/info/3,视图函数就会接收到(请求,3)两个参数 ,url(" # 39; ^信息/(\ d *) & # 39;美元,views.info), ] # - - - - - - - - - - - -
<强> B。编写视图函数的逻辑。强>
#——-views.py - 得到django.shortcuts import 渲染 #,这里的lcoation是定义的模型类,包含有若干条地名数据 得到models import 位置 得到django.core import  paginator #,视图函数 #,同样,索引是url传进来的页面序号 def 信息(请求,指数): ,#获取所有的的数据,列表是一个列表,包含有所有数据对应的实例对象=,,list  location.objects.all () ,#使用Paginator方法返回一个分页的对象 ,#这个对象包括所有数据,分页的情况=,,pag  paginator.Paginator(列表,3) ,#使用此判断语句是为了在用户跳转www.xxx.com/info/时也能访问第一页 ,if 指数==& # 39;& # 39;: ,指数=1 ,#返回指定(索引)页的数据,用于呈现在指定页上=,,page  pag.page(索引) ,#构造上下文,以文便html件中能调用对应页的数据 ,context =, { & # 39;才能页面# 39;:页面, ,} ,return 渲染(请求,& # 39;booktest/info.html& # 39;,上下文) # - - - - - - - - - - - -
<强> C。模板文件。强>
#——-info.html - - - - - - & lt; ! DOCTYPE html> & lt; html  lang=癳n"祝辞 & lt; head> ,& lt; meta charset=癠TF-8"比; ,& lt; title> Title & lt;/head> & lt; body> & lt; ul> ,#视图函数传进来的上下文页面是指定页的数据 ,{%,for each 拷贝page %} ,#遍历显示每条数据 ,& lt; li> {{, each.location_name }} & lt;/li> ,{%,endfor %} & lt;/ul> & lt; hr> ,#这里是重点 ,#同样还是需要调用视图函数传进来的页面页的页码 ,# page.paginator得到页面的paginator对象 ,# page.pageinator.page_range page_range可以返回页面列表(1、2、3、4……) ,#遍历页面列表 ,{%,for index 拷贝page.paginator.page_range %} #,才能page.number是视图函数现在呈现页的页码 #才能,这个页码不需要做超链接 ,,{%,if index ==, page.number %} & lt;才能span> {{, index }} & lt;/span> ,,{%,else %} #,才能生成每页超链接 #,才能点击每一个数字对应的链接就是& # 39;/信息/点击的页数& # 39; #才能,这样在url解析的时候,又可以把这一页的编号传给视图函数 #,才能视图函数根据这个页码呈现对应的内容 ,,& lt; a  href=https://www.yisu.com/zixun/?信息/{{指数}}”rel="外部nofollow”>{{指数}}> {% endif %} {% endfor %} 身体>