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 相关文章推荐
详解Golang 与python中的字符串反转
Jul 21 Python
Python基于回溯法子集树模板解决选排问题示例
Sep 07 Python
读取本地json文件,解析json(实例讲解)
Dec 06 Python
Python机器学习之SVM支持向量机
Dec 27 Python
Python3.6.2调用ffmpeg的方法
Jan 10 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
Nov 04 Python
原来我一直安装 Python 库的姿势都不对呀
Nov 11 Python
PyCharm如何导入python项目的方法
Feb 06 Python
Python的赋值、深拷贝与浅拷贝的区别详解
Feb 12 Python
Python学习之os模块及用法
Jun 03 Python
Pycharm如何自动生成头文件注释
Nov 14 Python
OpenCV-Python模板匹配人眼的实例
Jun 08 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
德生H-501的评价与改造
2021/03/02 无线电
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
php简单实现sql防注入的方法
2016/04/22 PHP
smarty自定义函数用法示例
2016/05/20 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
PDO::quote讲解
2019/01/29 PHP
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
瀑布流布局代码一例
2014/04/11 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
2015/09/14 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
jQuery获取cookie值及删除cookie用法实例
2016/04/15 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
微信小程序封装http访问网络库实例代码
2017/05/24 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
2017/08/09 jQuery
深入理解React高阶组件
2017/09/28 Javascript
vue axios请求频繁时取消上一次请求的方法
2018/11/10 Javascript
JS实现的类似微信聊天效果示例
2019/01/29 Javascript
vue基础之事件v-onclick=&quot;函数&quot;用法示例
2019/03/11 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
Python用csv写入文件_消除空余行的方法
2018/07/06 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
2019/08/30 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
.NET现在共支持多少种语言
2014/02/26 面试题
扬尘污染防治方案
2014/06/15 职场文书
淘宝文案策划岗位职责
2015/04/14 职场文书
2015年药房工作总结
2015/04/25 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL