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 相关文章推荐
django实现登录时候输入密码错误5次锁定用户十分钟
Nov 05 Python
python 寻找优化使成本函数最小的最优解的方法
Dec 28 Python
Laravel框架表单验证格式化输出的方法
Sep 25 Python
PyTorch学习:动态图和静态图的例子
Jan 06 Python
Python 实现opencv所使用的图片格式与 base64 转换
Jan 09 Python
python pprint模块中print()和pprint()两者的区别
Feb 10 Python
Python操作Excel把数据分给sheet
May 20 Python
python中常见错误及解决方法
Jun 21 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 Python
python 实现端口扫描工具
Dec 18 Python
Python如何使用logging为Flask增加logid
Mar 30 Python
python实现简单反弹球游戏
Apr 12 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
星际争霸 Starcraft 游戏介绍
2020/03/14 星际争霸
在PHP中利用wsdl创建标准webservice的实现代码
2011/12/07 PHP
php导入导出excel实例
2013/10/25 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
JavaScript数据类型之基本类型和引用类型的值
2015/04/01 Javascript
PhotoSwipe异步动态加载图片方法
2016/08/25 Javascript
微信小程序swiper实现滑动放大缩小效果
2018/11/15 Javascript
jquery登录的异步验证操作示例
2019/05/09 jQuery
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
浅析python递归函数和河内塔问题
2017/04/18 Python
5个很好的Python面试题问题答案及分析
2018/01/19 Python
python 读入多行数据的实例
2018/04/19 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
2018/05/28 Python
python获取url的返回信息方法
2018/12/17 Python
Python二叉搜索树与双向链表转换算法示例
2019/03/02 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
Python实现搜索算法的实例代码
2020/01/02 Python
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
static关键字的用法
2013/10/07 面试题
广州某公司软件工程师面试题
2014/12/22 面试题
手机业务员岗位职责
2013/12/13 职场文书
医院消毒隔离制度
2015/08/05 职场文书
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python