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中is和id的用法
Apr 03 Python
利用Python破解斗地主残局详解
Jun 30 Python
Python排序搜索基本算法之冒泡排序实例分析
Dec 09 Python
python 模拟银行转账功能过程详解
Aug 06 Python
Python3 sys.argv[ ]用法详解
Oct 24 Python
python操作docx写入内容,并控制文本的字体颜色
Feb 13 Python
深入浅析python变量加逗号,的含义
Feb 22 Python
python实现贪吃蛇游戏源码
Mar 21 Python
python中执行smtplib失败的处理方法
Jul 01 Python
python实现登录与注册系统
Nov 30 Python
python 爬取英雄联盟皮肤并下载的示例
Dec 04 Python
详解Django中 render() 函数的使用方法
Apr 22 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中魔术变量__METHOD__与__FUNCTION__的区别
2014/09/29 PHP
使用 PHPStorm 开发 Laravel
2015/03/24 PHP
php 三元运算符实例详细介绍
2016/12/15 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
ie下动态加态js文件的方法
2011/09/13 Javascript
jQuery判断数组是否包含了指定的元素
2015/03/10 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
Angular2 组件间通过@Input @Output通讯示例
2017/08/24 Javascript
React Form组件的实现封装杂谈
2018/05/07 Javascript
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
收藏整理的一些Python常用方法和技巧
2015/05/18 Python
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
python中map的基本用法示例
2018/09/10 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
python实现大文本文件分割
2019/07/22 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
《学会合作》教学反思
2014/04/12 职场文书
2014教师研修学习体会
2014/07/08 职场文书
2014客服代表实习自我鉴定
2014/09/18 职场文书
云冈石窟导游词
2015/02/04 职场文书
校车安全管理责任书
2015/05/11 职场文书
交通事故代理词范文
2015/05/23 职场文书
小学教师见习总结
2015/06/23 职场文书
PHP设计模式(观察者模式)
2021/07/07 PHP
Log4j.properties配置及其使用
2021/08/02 Java/Android
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL
MySQL限制查询和数据排序介绍
2022/03/25 MySQL