django的分页器Paginator 从django中导入类


Posted in Python onJuly 25, 2019

先创建表,然后生成批量数据。

在models文件里

from django.db import models

# Create your models here.


class Book(models.Model):

  name = models.CharField(max_length=32)
  price = models.DecimalField(max_digits=5,decimal_places=2)

然后执行python manage.py makemigrations ,python migrate 生成数据库。把数据库从左边拉到右边,

在url里创建showBooks视图函数API,

from django.conf.urls import url
from django.contrib import admin

from app01 import views
urlpatterns = [
  url(r'^admin/', admin.site.urls),
  url(r'^index/', views.index),
  url(r'^ajaxHandle/', views.ajaxHandle),
  url(r'^showBooks/', views.showBooks),-------

在views文件中创建showBooks 函数,批量导入数据,用bulk_create()

从django中导入Paginstor类,用对象调用方法,

def showBooks(requests):

  #批量导入数据bulk_create()方法

  # book_list=[]#里面存一个个对象
  # for i in range(100):
  #   book_list.append(Book(name="book%s"%i,price=2+i+2))
  #
  # Book.objects.bulk_create(book_list)

  book_list_all = Book.objects.all()

  #分页器Paginator,是导入了一个类,在用实列出来的对象调用方法,
  from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger

  #book_list_all 是要被分页的对象,第二个参数,是每页显示的条数
  p = Paginator(book_list_all,20)# p就是每页的对象,
  p.count #数据总数
  p.num_pages #总页数
  p.page_range#[1,2,3,4,5],得到页码,动态生成,

  page_num = requests.GET.get("page")#以get的方法从url地址中获取
  #如果输错了页码,
  try:
    book_list = p.page(page_num)#括号里的是页数,显示指定页码的数据,动态显示数据,所以不能写死了

  except PageNotAnInteger:#如果输入页码错误,就显示第一页
    book_list = p.page(1)
  except EmptyPage:#如果超过了页码范围,就把最后的页码显示出来,
    book_list = p.page(p.num_pages)

  return render(requests,"showBooks.html",locals())

数据库生成数据

django的分页器Paginator 从django中导入类

在templates 创建showBooks页面,把数据库数据渲染出来

{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.css' %}" rel="external nofollow" >


</head>
<body>

<ul>
{#request 也可以在这里渲染出来#}
  {% for book in book_list %}
    <li>{{ book.id }}     {{ book.name }}     {{ book.price }}</li>
  {% endfor %}


</ul>


   <ul class="pagination">
     {% if book_list.has_previous %}
    <li><a href="/showBooks/?page={{ book_list.previous_page_number }}" rel="external nofollow" >上一页</a></li> ---直接使用方法,上一页,
    {% else %}
    <li class="disabled"><a href="#" rel="external nofollow" rel="external nofollow" >上一页</a></li>
     {% endif %}

   {% for num in p.page_range %}
    <li><a href="/showBooks/?page={{ num }}" rel="external nofollow" >{{ num }}</a></li>
   {% endfor %}

    {% if book_list.has_next %}
    <li><a href="/showBooks/?page={{ book_list.next_page_number }}" rel="external nofollow" >下一页</a></li>
   {% else %}
    <li class="disabled"><a href="#" rel="external nofollow" rel="external nofollow" >下一页</a></li>
    {% endif %}

   </ul>
</body>
</html>

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

Python 相关文章推荐
python3.0 字典key排序
Dec 24 Python
跟老齐学Python之用while来循环
Oct 02 Python
python optparse模块使用实例
Apr 09 Python
解决python爬虫中有中文的url问题
May 11 Python
使用PyInstaller将python转成可执行文件exe笔记
May 26 Python
Python小工具之消耗系统指定大小内存的方法
Dec 03 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
Oct 09 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
Jan 15 Python
python实现图像拼接功能
Mar 23 Python
tensorflow 动态获取 BatchSzie 的大小实例
Jun 30 Python
vscode+PyQt5安装详解步骤
Aug 12 Python
python opencv肤色检测的实现示例
Dec 21 Python
python threading和multiprocessing模块基本用法实例分析
Jul 25 #Python
Python交互式图形编程的实现
Jul 25 #Python
python之pexpect实现自动交互的例子
Jul 25 #Python
Python使用lambda表达式对字典排序操作示例
Jul 25 #Python
浅析Python 引号、注释、字符串
Jul 25 #Python
django的auth认证,authenticate和装饰器功能详解
Jul 25 #Python
使用python telnetlib批量备份交换机配置的方法
Jul 25 #Python
You might like
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
php+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
PHP环境搭建的详细步骤
2016/06/30 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
2018/09/29 PHP
Yii框架视图、视图布局、视图数据块操作示例
2019/10/14 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
nodejs使用redis作为缓存介质实现的封装缓存类示例
2018/02/07 NodeJs
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
Python selenium如何设置等待时间
2016/09/15 Python
一个Python最简单的接口自动化框架
2018/01/02 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
你所在的项目是如何确定版本号的
2015/12/28 面试题
大学生党员自我批评
2014/02/14 职场文书
货车司机岗位职责
2014/03/18 职场文书
教师个人年度总结
2015/02/11 职场文书
自荐信怎么写
2015/03/04 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
校园安全主题班会
2015/08/12 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书