Django实现网页分页功能


Posted in Python onOctober 31, 2019

本文实例为大家分享了Django实现分页功能,为了容易区别功能的展现,先创建一个数据库,用数据库中的数据做演示。

创建数据库步骤如下:

1.创建模型,代码如下:

from django.db import models

# Create your models here.
class Goods(models.Model):
 name = models.CharField(max_length=100)
 des = models.CharField(max_length=1000)
 class Meta:
  db_table = 'goods'

2.向数据库中添加数据,代码如下:

from django.http import HttpResponse

from .models import Goods
import random
# Create your views here.

def index(request):
 for x in range(200):
  good = Goods(name='good%s'%x,des='该商品物美价廉,现在只需要{}元'.format(random.randint(10,100)))
  good.save()
 return HttpResponse('数据添加成功')

添加之后将代码就可以注释掉了,我们演示的时候再新建一个select接口作为演示界面。

from django.shortcuts import render
from django.core.paginator import Paginator , PageNotAnInteger,EmptyPage

# Create your views here.

def select(request):
 # 查询数据库中的所有数据
 good_list = Goods.objects.all()
 # 值1:所有的数据
 # 值2:每一页的数据
 # 值3:当最后一页数据少于n条,将数据并入上一页
 paginator = Paginator(good_list,12,3)

 try:
  # GET请求方式,get()获取指定Key值所对应的value值
  # 获取index的值,如果没有,则设置使用默认值1
  num = request.GET.get('index','1')
  # 获取第几页
  number = paginator.page(num)
 except PageNotAnInteger:
  # 如果输入的页码数不是整数,那么显示第一页数据
  number = paginator.page(1)
 except EmptyPage:
  number = paginator.page(paginator.num_pages)

 # 将当前页页码,以及当前页数据传递到index.html
 return render(request,'index.html',{'page':number,'paginator':paginator})

下面我们在index.html做界面处理,这里是需要用到bootstraps,三个文件如下图所示,前面讲解过。

Django实现网页分页功能

来到index.html文件,做如下设置:

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <link rel="stylesheet" href="{% static 'css/bootstrap.css' %}" >
 <!--<link rel="stylesheet" href="">-->
 <title>淘宝</title>
</head>
<body>
 {% for good in page.object_list %}
  <h4>{{good.name}} - {{good.des}}</h4>
 {% endfor %}
 <ul class="pagination">
  {# 如果当前页还有上一页 #}
  {% if page.has_previous %}
   <li>
    {# 点击a标签,跳转到上一页链接 ?index 为地址后面拼接的参数 #}
    <a href="?index={{page.previous_page_number}}" >上一页</a>
   </li>
  {% else %}
   {# 如果没有上一页, 则上一页按钮不可点击 #}
   <li class="disabled">
    <a href="#">上一页</a>
   </li>
  {% endif %}

  {% for page_number in paginator.page_range %}
   {# 获取当前页的页码 #}
   {% if page_number == page.number %}
    {# 如果是当前页的话,选中 #}
    <li class="active">
     <a href="?index={{page_number}}">{{page_number}}</a>
    </li>
   {% else %}
    <li>
     <a href="?index={{page_number}}">{{page_number}}</a>
    </li>
   {% endif %}
  {% endfor %}

  {% if page.has_next %}
   <li>
    <a href="?index={{page.next_page_number}}">下一页</a>
   </li>
  {% else %}
  <li class="disabled">
   <a href="#" >下一页</a>
  </li>
  {% endif %}
 </ul>

 <script src="{% static 'js/jquery.js' %}"></script>
 <script src="{% static 'js/bootstrap.js' %}"></script>
</body>
</html>

显示效果如下:

Django实现网页分页功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python获取网页上图片下载地址的方法
Mar 11 Python
python实现文件快照加密保护的方法
Jun 30 Python
利用python发送和接收邮件
Sep 27 Python
python画出三角形外接圆和内切圆的方法
Jan 25 Python
Django之使用内置函数和celery发邮件的方法示例
Sep 16 Python
python数值基础知识浅析
Nov 19 Python
numpy np.newaxis 的实用分享
Nov 30 Python
Django中密码的加密、验密、解密操作
Dec 19 Python
pytorch中tensor张量数据类型的转化方式
Dec 31 Python
通过python检测字符串的字母
Feb 18 Python
python爬虫实现POST request payload形式的请求
Apr 30 Python
Python爬虫制作翻译程序的示例代码
Feb 22 Python
8段用于数据清洗Python代码(小结)
Oct 31 #Python
利用Python绘制有趣的万圣节南瓜怪效果
Oct 31 #Python
python实现大量图片重命名
Mar 23 #Python
python3图片文件批量重命名处理
Oct 31 #Python
Django1.11自带分页器paginator的使用方法
Oct 31 #Python
python实现批量文件重命名
Oct 31 #Python
Python使用matplotlib 画矩形的三种方式分析
Oct 31 #Python
You might like
PHP保留两位小数的几种方法
2019/07/24 PHP
Iframe 自适应高度并实时监控高度变化的js代码
2009/10/30 Javascript
『jQuery』.html(),.text()和.val()的概述及使用
2013/04/22 Javascript
jquery中文乱码的多种解决方法
2013/06/21 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
2015/11/30 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
2016/12/08 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
js单页hash路由原理与应用实战详解
2017/08/14 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
2018/01/31 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
python打开文件并获取文件相关属性的方法
2015/04/23 Python
python中list常用操作实例详解
2015/06/03 Python
Python中的列表生成式与生成器学习教程
2016/03/13 Python
Python常用算法学习基础教程
2017/04/13 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
python 解压pkl文件的方法
2018/10/25 Python
机器学习实战之knn算法pandas
2019/06/22 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
python3实现用turtle模块画一棵随机樱花树
2019/11/21 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
python 生成器需注意的小问题
2020/09/29 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
HTML5 Web Workers之网站也能多线程的实现
2013/04/24 HTML / CSS
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
写给女朋友的道歉信
2014/01/12 职场文书
如何编写优秀的食品项目创业计划书
2014/01/23 职场文书
留学生求职信
2014/06/03 职场文书
校园绿化美化方案
2014/06/08 职场文书
运动会200米广播稿
2015/08/19 职场文书
python3 sqlite3限制条件查询的操作
2021/04/07 Python
深度学习详解之初试机器学习
2021/04/14 Python