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深入学习之特殊方法与多范式
Aug 31 Python
零基础写python爬虫之抓取百度贴吧代码分享
Nov 06 Python
Python3中的列表生成式、生成器与迭代器实例详解
Jun 11 Python
Python爬虫包BeautifulSoup学习实例(五)
Jun 17 Python
详解TensorFlow查看ckpt中变量的几种方法
Jun 19 Python
Python编程在flask中模拟进行Restful的CRUD操作
Dec 28 Python
Python文件读写常见用法总结
Feb 22 Python
python如何获取列表中每个元素的下标位置
Jul 01 Python
python实现两张图片拼接为一张图片并保存
Jul 16 Python
pycharm配置python 设置pip安装源为豆瓣源
Feb 05 Python
Python3爬虫ChromeDriver的安装实例
Feb 06 Python
python网络爬虫实现发送短信验证码的方法
Feb 25 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代码的53条建议
2008/03/27 PHP
CI框架整合widget(页面格局)的方法
2016/05/17 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
Yii框架实现邮箱激活的方法【数字签名】
2016/10/18 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
2017/03/16 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
JavaScript 一道字符串分解的题目
2011/08/03 Javascript
jquery中ajax学习笔记一
2011/10/16 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
jQuery添加和删除输入文本框标签代码
2016/05/20 Javascript
超实用的JavaScript代码段 附使用方法
2016/05/22 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
vue component 中引入less文件报错 Module build failed
2019/04/17 Javascript
[00:31]2016完美“圣”典风云人物:国士无双宣传片
2016/12/04 DOTA
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
Python实现按逗号分隔列表的方法
2018/10/23 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
CSS3的transition和animation的用法实例介绍
2014/08/20 HTML / CSS
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
Osklen官方在线商店:巴西服装品牌
2019/04/25 全球购物
荷叶圆圆教学反思
2014/02/01 职场文书
大学新生军训方案
2014/05/03 职场文书
国际贸易专业求职信
2014/06/04 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
乡镇党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
新学期开学标语2015
2015/07/16 职场文书
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS