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 01 Python
python使用Tesseract库识别验证
Mar 21 Python
python 多维切片之冒号和三个点的用法介绍
Apr 19 Python
对numpy中二进制格式的数据存储与读取方法详解
Nov 01 Python
在python中用url_for构造URL的方法
Jul 25 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
python中使用input()函数获取用户输入值方式
May 03 Python
基于python实现判断字符串是否数字算法
Jul 10 Python
python json.dumps() json.dump()的区别详解
Jul 14 Python
python 利用zmail库发送邮件
Sep 11 Python
Python __slots__的使用方法
Nov 15 Python
详解如何使用Pytest进行自动化测试
Jan 14 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验证码函数的使用示例
2013/05/03 PHP
PHP CURL获取cookies模拟登录的方法
2013/11/04 PHP
PHP防盗链代码实例
2014/08/27 PHP
PHP多线程编程之管道通信实例分析
2015/03/07 PHP
php socket通信简单实现
2016/11/18 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
IE中createElement需要注意的一个问题
2010/07/13 Javascript
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
2019/05/14 Javascript
Vue实现点击导航栏当前标签后变色功能
2020/08/19 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
Python的Django框架中TEMPLATES项的设置教程
2015/05/29 Python
python主线程捕获子线程的方法
2018/06/17 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
2018/10/31 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
Python笔记之工厂模式
2019/11/20 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
Python阶乘求和的代码详解
2020/02/14 Python
python实现手势识别的示例(入门)
2020/04/15 Python
python 异步async库的使用说明
2020/05/04 Python
Python基于字典实现switch case函数调用
2020/07/22 Python
英国床垫在线:Mattress Online
2016/12/07 全球购物
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
什么是数据库锁?Oracle中都有哪些类型的锁?
2015/08/21 面试题
教师网络培训感言
2014/03/09 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
学校清洁工岗位职责
2015/04/15 职场文书
食品药品安全责任书
2015/05/11 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书