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简单进程锁代码实例
Apr 27 Python
python爬虫使用cookie登录详解
Dec 27 Python
Python 12306抢火车票脚本
Feb 07 Python
python实现定时自动备份文件到其他主机的实例代码
Feb 23 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
使用Python抓取豆瓣影评数据的方法
Oct 17 Python
python儿童学游戏编程知识点总结
Jun 03 Python
python 3.6.7实现端口扫描器
Sep 04 Python
基于python的selenium两种文件上传操作实现详解
Sep 19 Python
opencv resize图片为正方形尺寸的实现方法
Dec 26 Python
Python就将所有的英文单词首字母变成大写
Feb 12 Python
教你怎么用Python实现多路径迷宫
Apr 29 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应用程序来获取Web服务器的状态信息
2006/10/09 PHP
php去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
php使用curl获取https请求的方法
2015/02/11 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
JS滚轮事件onmousewheel使用介绍
2013/11/01 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
2017/05/02 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
小程序云开发实战小结
2018/10/25 Javascript
nodejs提示:cross-device link not permitted, rename错误的解决方法
2019/06/10 NodeJs
vue项目中全局引入1个.scss文件的问题解决
2019/08/01 Javascript
微信小程序实现左侧滑栏过程解析
2019/08/26 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
python函数参数*args**kwargs用法实例
2013/12/04 Python
Python中处理unchecked未捕获异常实例
2015/01/17 Python
详解Python里使用正则表达式的ASCII模式
2017/11/02 Python
Python实现FTP文件传输的实例
2019/07/07 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
Chicco婴儿用品美国官网:汽车座椅、婴儿推车、高脚椅等
2018/11/05 全球购物
平面设计专业求职信
2014/08/09 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
先进教师事迹材料
2014/12/16 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
业务员岗位职责范本
2015/04/03 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
老乡聚会通知
2015/04/23 职场文书
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python