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编程过程中用单元测试法调试代码的介绍
Apr 02 Python
老生常谈Python之装饰器、迭代器和生成器
Jul 26 Python
详解python 拆包可迭代数据如tuple, list
Dec 29 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
浅谈Series和DataFrame中的sort_index方法
Jun 07 Python
Flask框架踩坑之ajax跨域请求实现
Feb 22 Python
python async with和async for的使用
Jun 20 Python
在django view中给form传入参数的例子
Jul 19 Python
Python实现文件压缩和解压的示例代码
Aug 12 Python
python中lower函数实现方法及用法讲解
Dec 23 Python
Python中lru_cache的使用和实现详解
Jan 25 Python
python可视化之颜色映射详解
Sep 15 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 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
Angular整合zTree的示例代码
2018/01/24 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
微信小程序分享海报生成的实现方法
2018/12/10 Javascript
javascript canvas检测小球碰撞
2020/04/17 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
Python 列表list使用介绍
2014/11/30 Python
Python中的super()方法使用简介
2015/08/14 Python
python字符类型的一些方法小结
2016/05/16 Python
Django2.1.3 中间件使用详解
2018/11/26 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
Python实现的北京积分落户数据分析示例
2020/03/27 Python
Sephora丝芙兰泰国官方网站:国际知名化妆品购物
2017/11/15 全球购物
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
什么是lambda函数
2013/09/17 面试题
运动会入场式解说词
2014/02/18 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
高中校园广播稿
2014/10/21 职场文书
2014年法务工作总结
2014/12/11 职场文书
小学生交通安全寄语
2015/02/27 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
《雷雨》教学反思
2016/02/20 职场文书
看古人们是如何赞美老师的?
2019/07/08 职场文书
python爬虫框架feapde的使用简介
2021/04/20 Python
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python