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概率计算器实例分析
Mar 25 Python
详细介绍Python中的偏函数
Apr 27 Python
Python将阿拉伯数字转换为罗马数字的方法
Jul 10 Python
Python实现霍夫圆和椭圆变换代码详解
Jan 12 Python
基于Python Numpy的数组array和矩阵matrix详解
Apr 04 Python
Python多进程fork()函数详解
Feb 22 Python
Python Numpy数组扩展repeat和tile使用实例解析
Dec 09 Python
Python 获取命令行参数内容及参数个数的实例
Dec 20 Python
对pytorch的函数中的group参数的作用介绍
Feb 18 Python
Django ValuesQuerySet转json方式
Mar 16 Python
简单了解django处理跨域请求最佳解决方案
Mar 25 Python
通过实例了解Python异常处理机制底层实现
Jul 23 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
实用函数2
2007/11/08 PHP
php二分法在IP地址查询中的应用
2008/08/12 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
js实现带简单弹性运动的导航条
2017/02/22 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
2017/03/13 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
详解vue中组件参数
2018/07/09 Javascript
vue实现一拉到底的滑动验证
2019/07/25 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
详解小程序如何动态绑定点击的执行方法
2019/11/26 Javascript
js实现扫雷源代码
2020/11/27 Javascript
Python 命令行非阻塞输入的小例子
2013/09/27 Python
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
python中zip()方法应用实例分析
2016/04/16 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
python链表类中获取元素实例方法
2021/02/23 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
集团公司总经理岗位职责
2013/12/20 职场文书
最新会计专业求职信范文
2014/01/28 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
求职信模板
2014/05/23 职场文书
群众路线剖析材料
2014/09/30 职场文书
机修车间主任岗位职责
2015/04/08 职场文书
2016年感恩母亲节活动总结
2016/04/01 职场文书
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python