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 30 Python
Python验证企业工商注册码
Oct 25 Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
Nov 16 Python
Python 自动化表单提交实例代码
Jun 08 Python
Python中执行存储过程及获取存储过程返回值的方法
Oct 07 Python
python检测主机的连通性并记录到文件的实例
Jun 21 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
Feb 18 Python
Python实现KNN(K-近邻)算法的示例代码
Mar 05 Python
解决python tkinter界面卡死的问题
Jul 17 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
Nov 11 Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 Python
使用Python构造hive insert语句说明
Jun 06 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
WINDOWS服务器安装多套PHP的另类解决方案
2006/10/09 PHP
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
2014/12/17 PHP
PHP错误机制知识汇总
2016/03/24 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
PHP实现正则匹配所有括号中的内容
2018/06/22 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
javascript之AJAX框架使用说明
2010/04/24 Javascript
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
javascript实现简单的分页特效
2015/08/12 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
Vue cli构建及项目打包以及出现的问题解决
2018/08/27 Javascript
跟混乱的页面弹窗说再见
2019/04/11 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
js与jquery获取input输入框中的值实例讲解
2020/02/27 jQuery
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
pytorch cnn 识别手写的字实现自建图片数据
2018/05/20 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
Python turtle库的画笔控制说明
2020/06/28 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
智利最大的网上商店:Linio智利
2016/11/24 全球购物
酒店中秋节促销方案
2014/01/30 职场文书
收银员的岗位职责范本
2014/02/04 职场文书
国贸专业的职业规划书
2014/03/15 职场文书
2014年实习班主任工作总结
2014/11/08 职场文书
三好学生事迹材料
2014/12/24 职场文书
环保建议书作文400字
2015/09/14 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL