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实现apahce网站日志分析示例
Apr 02 Python
Python Web框架Flask下网站开发入门实例
Feb 08 Python
python根据开头和结尾字符串获取中间字符串的方法
Mar 26 Python
python自定义类并使用的方法
May 07 Python
Python 中的with关键字使用详解
Sep 11 Python
分析Python中解析构建数据知识
Jan 20 Python
使用pandas对两个dataframe进行join的实例
Jun 08 Python
Python实现获取邮箱内容并解析的方法示例
Jun 16 Python
Python requests库用法实例详解
Aug 14 Python
Python实现数值积分方式
Nov 20 Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 Python
Python 的演示平台支持 WSGI 接口的应用
Apr 20 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 七大优势分析
2009/06/23 PHP
php中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
vue开发心得和技巧分享
2016/10/27 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
基于JavaScript实现复选框的全选和取消全选
2017/02/09 Javascript
微信小程序 参数传递实例代码
2017/03/20 Javascript
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
JS实现换肤功能的方法实例详解
2019/01/30 Javascript
基于JS实现数字动态变化显示效果附源码
2019/07/18 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
python根据距离和时长计算配速示例
2014/02/16 Python
对Python3 序列解包详解
2019/02/16 Python
Pytorch模型转onnx模型实例
2020/01/15 Python
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
sealed修饰符是干什么的
2012/10/23 面试题
Delphi软件工程师试题
2013/01/29 面试题
工作交流会欢迎词
2014/01/12 职场文书
安全生产网格化管理实施方案
2014/03/01 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
小学英语教师先进事迹
2014/05/28 职场文书
倡议书格式
2014/08/30 职场文书
销售员工作检讨书(推荐篇)
2014/10/18 职场文书
个人求职信格式范文
2015/03/20 职场文书
工作失职自我检讨书
2015/05/05 职场文书
教师节班会主持词
2015/07/06 职场文书
卫生主题班会
2015/08/14 职场文书
2019事业单位个人工作总结范文
2019/08/26 职场文书
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS