96-分页器1
批量插入的方式就不能用ORM的create()方式去做了,因为create就是对sql进行insert的操作,sql最好不要每次有一条数据就去进行插入,最好的方式就是插入一组数据
  1. from django.shortcuts import render
  2. from django.core.paginator import Paginator, EmptyPage
  3. # Create your views here.
  4. from app01.models import Book
  5.  
  6. def index(request):
  7. '''
  8.  
  9. :param request:
  10. :return:
  11. '''
  12. # book_list = []
  13. # for i in range(100):
  14. # book_obj = Book(title="book_%s" % i, price=i*i)
  15. # book_list.append(book_obj)
  16. # # 进行批量插入
  17. # Book.objects.bulk_create(book_list)
  18. book_list = Book.objects.all()
  19. paginator = Paginator(book_list, 10)
  20. # print(paginator.count)
  21. # print(paginator.num_pages)
  22. try:
  23. c_page = int(request.GET.get('page', 1))
  24. c_page = paginator.page(c_page)
  25. # print(page1.object_list)
  26. for i in c_page:
  27. print(i.title)
  28. except EmptyPage as e:
  29. c_page = paginator.page(1)
  30. return render(request, 'index.html', locals())
  1. from django.db import models
  2.  
  3. # Create your models here.
  4.  
  5. class Book(models.Model):
  6. title = models.CharField(max_length=32)
  7. price = models.DecimalField(decimal_places=2, max_digits=8)

models.py

  1. """PageDemo URL Configuration
  2.  
  3. The `urlpatterns` list routes URLs to views. For more information please see:
  4. https://docs.djangoproject.com/en/2.1/topics/http/urls/
  5. Examples:
  6. Function views
  7. 1. Add an import: from my_app import views
  8. 2. Add a URL to urlpatterns: path('', views.home, name='home')
  9. Class-based views
  10. 1. Add an import: from other_app.views import Home
  11. 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
  12. Including another URLconf
  13. 1. Import the include() function: from django.urls import include, path
  14. 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
  15. """
  16. from django.contrib import admin
  17. from django.urls import path
  18. from app01 import views
  19. urlpatterns = [
  20. path('admin/', admin.site.urls),
  21. path('index/', views.index),
  22. ]

urls.py

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>分页器</title>
  6. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
  7. </head>
  8. <body>
  9. <ul>
  10. {% for book in c_page %}
  11. <li>
  12. {{ book.title }}:{{ book.price }}
  13. </li>
  14. {% endfor %}
  15. </ul>
  16. <nav aria-label="Page navigation">
  17. <ul class="pagination">
  18.  
  19. {% if c_page.has_previous%}
  20. <li>
  21. <a href="?page={{ c_page.previous_page_number }}" aria-label="Previous">
  22. <span aria-hidden="true">上一页</span>
  23. </a>
  24. </li>
  25. {% else %}
  26. <li class="disabled">
  27. <a href="" aria-label="Previous">
  28. <span aria-hidden="true">上一页</span>
  29. </a>
  30. </li>
  31. {% endif %}
  32.  
  33. {% for foo in page_range %}
  34. {% if c_page_n == foo %}
  35. <li class="active"><a href="?page={{ foo }}">{{ foo }}</a></li>
  36. {% else %}
  37. <li><a href="?page={{ foo }}">{{ foo }}</a></li>
  38. {% endif %}
  39.  
  40. {% endfor %}
  41.  
  42. {% if c_page.has_next %}
  43. <li>
  44. <a href="?page={{ c_page.next_page_number }}" aria-label="Next">
  45. <span aria-hidden="true">下一页</span>
  46. </a>
  47. </li>
  48. {% else %}
  49. <li class="disabled">
  50. <a href="" aria-label="Next">
  51. <span aria-hidden="true">下一页</span>
  52. </a>
  53. </li>
  54. {% endif %}
  55.  
  56. </ul>
  57. </nav>
  58.  
  59. </body>
  60. </html>

index.html

97-分页器2
98-分页器3
99-分页器4

路飞学城Python-Day108的更多相关文章

  1. 路飞学城—Python爬虫实战密训班 第三章

    路飞学城—Python爬虫实战密训班 第三章 一.scrapy-redis插件实现简单分布式爬虫 scrapy-redis插件用于将scrapy和redis结合实现简单分布式爬虫: - 定义调度器 - ...

  2. 路飞学城—Python爬虫实战密训班 第二章

    路飞学城—Python爬虫实战密训班 第二章 一.Selenium基础 Selenium是一个第三方模块,可以完全模拟用户在浏览器上操作(相当于在浏览器上点点点). 1.安装 - pip instal ...

  3. 路飞学城Python爬虫课第一章笔记

    前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 之前看阮一峰的博客文章,介绍到路飞学城爬虫课程限免,看了眼内容还不错,就兴冲冲报了名,99块钱满足以下条件会返还并送书送视频. 缴 ...

  4. 路飞学城-Python开发集训-第3章

    学习心得: 通过这一章的作业,使我对正则表达式的使用直接提升了一个level,虽然作业完成的不怎么样,重复代码有点多,但是收获还是非常大的,有点找到写代码的感觉了,遗憾的是,这次作业交过,这次集训就结 ...

  5. 路飞学城-Python开发集训-第1章

    学习体会: 在参加这次集训之前我自己学过一段时间的Python,看过老男孩的免费视频,自我感觉还行,老师写的代码基本上都能看懂,但是实际呢?....今天是集训第一次交作业的时间,突然发现看似简单升级需 ...

  6. 路飞学城-Python开发集训-第4章

    学习心得: 学习笔记: 在python中一个py文件就是一个模块 模块好处: 1.提高可维护性 2.可重用 3.避免函数名和变量名冲突 模块分为三种: 1.内置标准模块(标准库),查看所有自带和第三方 ...

  7. 路飞学城-Python开发集训-第2章

    学习心得: 这章对编码的讲解超级赞,现在对于编码终于有一点认知了,但还没有大彻大悟,还需要更加细心的琢磨一下Alex博客和视频,以前真的是被编码折磨死了,因为编码的问题而浪费的时间很多很多,现在终于感 ...

  8. 路飞学城-Python开发-第二章

    ''' 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家' ...

  9. 路飞学城-Python开发-第三章

    # 数据结构: # goods = [ # {"name": "电脑", "price": 1999}, # {"name&quo ...

  10. 路飞学城-Python开发-第一章

    # 基础需求: # 让用户输入用户名密码 # 认证成功后显示欢迎信息 # 输错三次后退出程序 username = 'pandaboy' password = ' def Login(username ...

随机推荐

  1. 在TOMCAT上手工生成及部署WAR包

    以前是用ECLIPSE或是其它IDE自动生成,不明了. 这次手写JAVA,先生成CALSS来部署, 之后用WAR包来部署.(查了资料,好像直接用JAR来部署TOMCAT的WEB项目,不得行) 就上次生 ...

  2. SQL SERVER高级知识积累

    什么叫做高可用服务器? 高可用服务器简单来理解就是不宕机的服务器 什么叫走服务器的自动化灾备? 自动灾备的意思就是,让从服务器自动变成主服务器 sql server的聚合是什么? 事务会引起性能下降, ...

  3. windows集成身份验证

    集成windows身份验证 这种验证方式里面也分为两种情况 NTLM验证 这种验证方式需要把用户的用户名和密码传送到服务端,服务端验证用户名和密码是否和服务器的此用户的密码一致.用户名用明码传送,但是 ...

  4. Data Binding Guide——google官方文档翻译(下)

    这篇博客是Data Binding Guide官网文档翻译的下篇.假设没看过前半部分翻译的能够先看Data Binding Guide--google官方文档翻译(上)  一,数据对象 不论什么不含业 ...

  5. oracle regexp_like介绍和例子

    oracle regexp_like介绍和例子 学习了:http://www.cnblogs.com/einyboy/archive/2012/08/01/2617606.html ORACLE中的支 ...

  6. hibernate之7.one2many双向

    表结构 实体类关系 实体类源代码 Student package com.demo.model; import java.io.UnsupportedEncodingException; import ...

  7. 关于使用chrome插件改动全部的站点的响应responseHeaders头的注意

    1 眼下我掌握的调试技巧非常不方便,如今使用的是浏览器动作,每次都须要点击那个popup页面弹出,然后右键->查看元素,才干显示它的调试面板.一点击某些位置它又没有了; 2 改动响应报头的值时, ...

  8. cocos2dx3.0 结构图

    图片较大.请下载看 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzE4NzY3MTA0MTgz/font/5a6L5L2T/fontsize/400/f ...

  9. HDU 4386 Quadrilateral(数学啊)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4386 Problem Description One day the little Jack is p ...

  10. c26---文件包含include

    // // main.c // 文件包含 #include <stdio.h> // 函数可以重复声明, 但不能重复定义 void test(); void test(); void te ...