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编写脚本获取手机当前应用apk的信息
Jul 21 Python
Python内置函数之filter map reduce介绍
Nov 30 Python
python获取本机外网ip的方法
Apr 15 Python
解密Python中的描述符(descriptor)
Jun 03 Python
浅谈Python 对象内存占用
Jul 15 Python
python读取excel表格生成erlang数据
Aug 26 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
Jan 19 Python
django+tornado实现实时查看远程日志的方法
Aug 12 Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 Python
python爬虫用mongodb的理由
Jul 28 Python
Python实现PS滤镜中的USM锐化效果
Dec 04 Python
python ConfigParser库的使用及遇到的坑
Feb 12 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实现异步操作的研究
2013/02/03 PHP
给ECShop添加最新评论
2015/01/07 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
jQuery Ajax异步处理Json数据详解
2013/11/05 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
2017/08/14 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
Node 模块原理与用法详解
2020/05/13 Javascript
js实现点击烟花特效
2020/10/14 Javascript
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
2020/11/11 Javascript
Python获取系统默认字符编码的方法
2015/06/04 Python
深入解析Python中的__builtins__内建对象
2016/06/21 Python
Python for循环生成列表的实例
2018/06/15 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
通过python 执行 nohup 不生效的解决
2020/04/16 Python
使用python实现学生信息管理系统
2021/02/25 Python
逼真的HTML5树叶飘落动画
2016/03/01 HTML / CSS
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
在购买印度民族服饰:Soch
2020/09/15 全球购物
为什么要有struct关键字
2012/05/08 面试题
C#如何进行LDAP用户校验
2012/11/21 面试题
普通大学毕业生自荐信范文
2014/02/23 职场文书
活动总结格式范文
2014/04/26 职场文书
安全责任书范文
2014/08/25 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
电影小兵张嘎观后感
2015/06/03 职场文书
2016新年问候语大全
2015/11/11 职场文书
职场中的你,辞职信写对了吗?
2019/06/26 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
Python+Appium新手教程
2021/04/17 Python
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python