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 相关文章推荐
有关wxpython pyqt内存占用问题分析
Jun 09 Python
Python执行时间的计算方法小结
Mar 17 Python
python使用opencv按一定间隔截取视频帧
Mar 06 Python
Numpy 将二维图像矩阵转换为一维向量的方法
Jun 05 Python
详解python中的json和字典dict
Jun 22 Python
对python dataframe逻辑取值的方法详解
Jan 30 Python
python中 * 的用法详解
Jul 10 Python
三个python爬虫项目实例代码
Dec 28 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
Feb 18 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
Feb 18 Python
Python反爬虫伪装浏览器进行爬虫
Feb 28 Python
Python函数对象与闭包函数
Apr 13 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
德生9700DX电路分析
2021/03/02 无线电
PHP 中的批处理的实现
2007/06/14 PHP
用PHP实现的四则运算表达式计算实现代码
2011/08/02 PHP
PHP使用SOAP调用.net的WebService数据
2013/11/12 PHP
php图片缩放实现方法
2014/02/20 PHP
jquery validate使用攻略 第四步
2010/07/01 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
Knockoutjs的环境搭建教程
2012/11/26 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
Python中的urllib模块使用详解
2015/07/07 Python
python基础教程之匿名函数lambda
2017/01/17 Python
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
Python读取word文本操作详解
2018/01/22 Python
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
如何用C代码给Python写扩展库(Cython)
2019/05/17 Python
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
python爬取招聘要求等信息实例
2020/11/20 Python
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
shell程序中如何注释
2012/01/28 面试题
金融系应届毕业生求职信
2014/05/26 职场文书
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
教师四风问题整改措施
2014/09/25 职场文书
大雁塔导游词
2015/02/04 职场文书
观看《杨善洲》宣传教育片心得体会
2016/01/23 职场文书
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js