python Django框架实现web端分页呈现数据


Posted in Python onOctober 31, 2019

这里介绍使用python-Django框架来实现web端分页呈现数据,主要说明对应的views,urls,templates三个文件的编程逻辑的实现。

首先介绍Django中的paginator类。paginator是Django中提供的可以实现管理数据分页的类。

from django.core import paginator

下面是本文用到的paginator中的属性和方法。

Paginator对象

1. 构造:Paginator(列表,int):返回分页的整体对象。
2. page_range:返回页码列表 [1,2,3,4…]
3. page(num):返回num页的数据内容

Page对象

1. 构造:Paginator对象的page()方法返回Page对象。
2. number:返回当前页的序号。
3. paginator:当前page对象相关的Paginator对象。page.paginator相当于Paginator对象。

A. 构造url。

#---urls.py------
from django.conf.urls import url
import views
urlpatterns = [
 # 这个url构造在根目录下
 # 定义为'info/数字'是为了传一个页面序号为参数给视图函数
 # 视图函数接收到这个数字为参数后,就可以调用对应页的数据呈现
 # 例如我们输入www.xxx.com/info/3,视图函数就会接收到(request,3)两个参数
 url(r'^info/(\d*)$',views.info),
]
#---------

B. 编写视图函数的逻辑。

#---views.py---
from django.shortcuts import render
# 这里的lcoation是定义的模型类,包含有若干条地名数据
from models import location
from django.core import paginator

# 视图函数
# 同样,index是url传进来的页面序号
def info(request,index):
 # 获取所有的的数据,list是一个列表,包含有所有数据对应的实例对象
 list = location.objects.all()
 # 使用Paginator方法返回一个分页的对象
 # 这个对象包括所有数据,分页的情况
 pag = paginator.Paginator(list,3)
 # 使用此判断语句是为了在用户跳转www.xxx.com/info/时也能访问第一页
 if index=='':
  index=1
 # 返回指定(index)页的数据,用于呈现在指定页上
 page = pag.page(index)
 # 构造上下文,以便html文件中能调用对应页的数据
 context = {
  'page':page,
 }
 return render(request,'booktest/info.html',context)
#---------

C. 模板文件。

#---info.html------
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
<ul>
 # 视图函数传进来的上下文page是指定页的数据
 {% for each in page %}
 # 遍历显示每条数据
 <li>{{ each.location_name }}</li>
 {% endfor %}
</ul>
<hr>
 # 这里是重点
 # 同样还是需要调用视图函数传进来的page页的页码
 # page.paginator得到page的paginator对象
 # page.pageinator.page_range page_range可以返回页面列表[1,2,3,4...]
 # 遍历页面列表
 {% for index in page.paginator.page_range %}
  # page.number是视图函数现在呈现页的页码
  # 这个页码不需要做超链接
  {% if index == page.number %}
  <span>{{ index }}</span>
  {% else %}
  # 生成每页超链接
  # 点击每一个数字对应的链接就是'/info/点击的页数'
  # 这样在url解析的时候,又可以把这一页的编号传给视图函数
  # 视图函数根据这个页码呈现对应的内容
   <a href="/info/{{index}}" rel="external nofollow" >{{ index }}</a>
  {% endif %}
 {% endfor %}

</body>
</html>
#---------

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python sys.path详细介绍
Oct 17 Python
python基础教程之元组操作使用详解
Mar 25 Python
Python实现查找匹配项作处理后再替换回去的方法
Jun 10 Python
Python实现导出数据生成excel报表的方法示例
Jul 12 Python
python 读取txt中每行数据,并且保存到excel中的实例
Apr 29 Python
Python开发最牛逼的IDE——pycharm
Aug 01 Python
Python进程间通信 multiProcessing Queue队列实现详解
Sep 23 Python
django使用xadmin的全局配置详解
Nov 15 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
Dec 27 Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 Python
Python列表推导式实现代码实例
Sep 09 Python
基于Python实现将列表数据生成折线图
Mar 23 Python
python3常用的数据清洗方法(小结)
Oct 31 #Python
Django实现网页分页功能
Oct 31 #Python
8段用于数据清洗Python代码(小结)
Oct 31 #Python
利用Python绘制有趣的万圣节南瓜怪效果
Oct 31 #Python
python实现大量图片重命名
Mar 23 #Python
python3图片文件批量重命名处理
Oct 31 #Python
Django1.11自带分页器paginator的使用方法
Oct 31 #Python
You might like
php xml 入门学习资料
2011/01/01 PHP
php计算title标题相似比的方法
2015/07/29 PHP
在 PHP 和 Laravel 中使用 Traits的方法
2019/11/13 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
利用javascript实现一些常用软件的下载导航
2009/08/03 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
Bootstrap编写导航栏和登陆框
2016/05/30 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
2020/05/13 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
Python中的迭代器漫谈
2015/02/03 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
2019/01/22 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
Django Celery异步任务队列的实现
2019/07/24 Python
简述DNS进行域名解析的过程
2013/12/02 面试题
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
thinkphp5 redis缓存新增方法实例讲解
2021/03/24 PHP
银行出纳岗位职责
2013/11/25 职场文书
捐款倡议书范文
2014/02/02 职场文书
《猴子种果树》教学反思
2014/04/26 职场文书
高一新生军训方案
2014/05/12 职场文书
团队口号大全
2014/06/06 职场文书
2014财务部年度工作总结
2014/12/08 职场文书
学校教师师德师风承诺书
2015/04/28 职场文书
值班管理制度范本
2015/08/06 职场文书
考试后的感想
2015/08/07 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
使用nginx动态转换图片大小生成缩略图
2021/03/31 Servers
C站最全Python标准库总结,你想要的都在这里
2021/07/03 Python
python元组打包和解包过程详解
2021/08/02 Python