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执行shell获取硬件参数写入mysql的方法
Dec 29 Python
使用Python编写Linux系统守护进程实例
Feb 03 Python
基于Python实现文件大小输出
Jan 11 Python
python实现FTP服务器服务的方法
Apr 11 Python
Python装饰器用法实例总结
Feb 07 Python
利用python提取wav文件的mfcc方法
Jan 09 Python
Django如何开发简单的查询接口详解
May 17 Python
基于spring boot 日志(logback)报错的解决方式
Feb 20 Python
pytorch 使用加载训练好的模型做inference
Feb 20 Python
Python集成开发工具Pycharm的安装和使用详解
Mar 18 Python
python 制作简单的音乐播放器
Nov 25 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
Dec 11 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控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
如何突破PHP程序员的技术瓶颈分析
2011/07/17 PHP
laravel migrate初学常见错误的解决方法
2017/10/11 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
javascript去掉前后空格的实例
2013/11/07 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
JS 实现列表与多选框选择附预览动画
2014/10/29 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
vue项目中公用footer组件底部位置的适配问题
2018/05/10 Javascript
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
Python ljust rjust center输出
2008/09/06 Python
Python命令行参数解析模块getopt使用实例
2015/04/13 Python
python中json格式数据输出的简单实现方法
2016/10/31 Python
Python制作简易注册登录系统
2016/12/15 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
Python 查看文件的读写权限方法
2018/01/23 Python
Python入门之后再看点什么好?
2018/03/05 Python
在cmd命令行里进入和退出Python程序的方法
2018/05/12 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
谈谈Python中的while循环语句
2019/03/10 Python
详解Python3之数据指纹MD5校验与对比
2019/06/11 Python
对python 调用类属性的方法详解
2019/07/02 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
会计专业个人求职信范文
2014/01/08 职场文书
Python基础之元编程知识总结
2021/05/23 Python
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS