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 相关文章推荐
linux环境下安装pyramid和新建项目的步骤
Nov 27 Python
跟老齐学Python之从格式化表达式到方法
Sep 28 Python
python的keyword模块用法实例分析
Jun 30 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
Jun 20 Python
使用turtle绘制五角星、分形树
Oct 06 Python
python 实现图片上传接口开发 并生成可以访问的图片url
Dec 18 Python
git查看、创建、删除、本地、远程分支方法详解
Feb 18 Python
在Matplotlib图中插入LaTex公式实例
Apr 17 Python
keras 多gpu并行运行案例
Jun 10 Python
python cv2.resize函数high和width注意事项说明
Jul 05 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
Aug 27 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 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
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
PHP添加MySQL数据记录代码
2008/06/07 PHP
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
JavaScript模拟数组合并concat
2016/03/06 Javascript
JQuery Mobile 弹出式登录框的实现方法
2016/05/28 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
Bootstrap实现的表格合并单元格示例
2018/02/06 Javascript
vue加载自定义的js文件方法
2018/03/13 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
Windows下PyMongo下载及安装教程
2015/04/27 Python
Python网络编程 Python套接字编程
2017/09/13 Python
Django 使用logging打印日志的实例
2018/04/28 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
python实现图书借阅系统
2019/02/20 Python
Python使用统计函数绘制简单图形实例代码
2019/05/15 Python
PowerBI和Python关于数据分析的对比
2019/07/11 Python
三个python爬虫项目实例代码
2019/12/28 Python
Python通过Pillow实现图片对比
2020/04/29 Python
python从Oracle读取数据生成图表
2020/10/14 Python
庆中秋节主题活动方案
2014/02/03 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
优秀高中学生评语
2014/12/30 职场文书
护士心得体会范文
2016/01/25 职场文书