昨日回顾:
   1 ajax 什么是ajax:异步的JavaScript 和xml
   2 特点:异步,局部刷新
   3 简单的与后台交互:(携带数据:可以拼到url上---->从GET中取,)
    $.ajax({
       url:请求的地址,
       type:请求方式,(post,get....)
       //contentType:'application/json',(默认:urlencoded)
       data:{},往后台发送的数据
       success:function (data){
        //data的数据类型,不一定
        //异步的,成功返回,才能回调
       }
   })
  -携带数据:
      -可以拼到url上---->从GET中取 
      -默认urlencoded编码和formdata,放到data中的数据,------>POST
 
今日内容:
   分页器:
      -干啥的?数据量大的话,可以分页获取,查看
    基本写法:
       后端:
          -总数据拿出来
          -生成分页器Paginator对象(对象里有属性和方法)
          -生成当前页的对象,current_page=paginator.page(当前页码)
          -取出前台传过来的页码,current_page_num = int(request.GET.get('page'))
           -需要有异常捕获
           -捕获到,把当前页码设置成第一页
  1. def manypage(request):
  2. try:
  3. page = int(request.GET.get('p'))
  4. books = models.Book.objects.all()
  5. paginator = Paginator(books, 10)
  6. current_page = paginator.page(page)
  7. if paginator.num_pages > 11:
  8. if page - 5 < 1:
  9. page_range = range(1, 12)
  10. elif page + 5 > paginator.num_pages:
  11. page_range = range(paginator.num_pages - 10, paginator.num_pages + 1)
  12. else:
  13. page_range = range(page - 5, page + 6)
  14. else:
  15. page_range = paginator.page_range
  16. except Exception as e:
  17. page = 1
  18. current_page = paginator.page(page)
  19. page_range = range(1, 12)
  20. return render(request, 'manypage.html', locals())

前端:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>index</title>
  6. <script src="/static/jquery-3.3.1.js"></script>
  7. <link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.min.css">
  8. </head>
  9. <body>
  10.  
  11. <div class="col-md-offset-3 col-md-6">
  12. <table class="table table-striped">
  13. <thead>
  14. <tr>
  15. <th>书名</th>
  16. <th>价格</th>
  17. </tr>
  18. </thead>
  19. <tbody>
  20. {% for book in current_page %}
  21. <tr>
  22. <td>{{ book.name }}</td>
  23. <td>{{ book.price }}</td>
  24. </tr>
  25. {% endfor %}
  26. </tbody>
  27. </table>
  28. <nav aria-label="Page navigation">
  29. <ul class="pagination">
  30. {% if current_page.has_previous %}
  31. <li>
  32. <a href="?p={{ current_page.previous_page_number }}" aria-label="Previous">
  33. <span aria-hidden="true">上一页</span>
  34. </a>
  35. </li>
  36. {% else %}
  37. <li class="disabled">
  38. <a href="#" aria-label="Previous">
  39. <span aria-hidden="true">上一页</span>
  40. </a>
  41. </li>
  42. {% endif %}
  43. {% for num in page_range %}
  44. {% if num == page %}
  45. <li class="active"><a href="?p={{ num }}">{{ num }}</a></li>
  46. {% else %}
  47. <li><a href="?p={{ num }}">{{ num }}</a></li>
  48. {% endif %}
  49. {% endfor %}
  50. {% if current_page.has_next %}
  51. <li>
  52. <a href="?p={{ current_page.next_page_number }}" aria-label="Next">
  53. <span aria-hidden="true">下一页</span>
  54. </a>
  55. </li>
  56. {% else %}
  57. <li class="disabled">
  58. <a href="#" aria-label="Next">
  59. <span aria-hidden="true">下一页</span>
  60. </a>
  61. </li>
  62. {% endif %}
  63. </ul>
  64. </nav>
  65. </div>
  66. </body>
  67. </html>

批量插入输入:
    -models.Book.objects.bulk_create(ll)

   
  

day76的更多相关文章

  1. day76 auth模块 用户验证,

    概要: form组件回顾: (1) 创建form组件对应的类,比如LoginForm (2) views.login: if get请求: form_obj=LoginForm() return re ...

  2. python 全栈开发,Day76(Django组件-cookie,session)

    昨日内容回顾 1 json 轻量级的数据交换格式 在python 序列化方法:json.dumps() 反序列化方法:json.loads() 在JS中: 序列化方法:JSON.stringfy() ...

  3. day76 作业

    目录 需求: 作业1: 作业2: 需求: 1. 在作业1.html代码的基础上,引入vue.js文件,并实例化vm对象,绑定#goods元素 2. 在作业1.html代码的基础上,默认中间弹出窗口隐藏 ...

  4. day76 vue框架入门

    目录 一.vue.js快速入门使用 1 vue.js库的下载 2 vue.js库的使用 3 vue.js的M-V-VM思想 4 显示数据 二.常用指令 1 操作属性 2 事件的绑定 3 样式操作 3. ...

  5. day76:luffy:项目前端环境搭建&轮播图的实现

    目录 1.项目前端环境搭建 1.创建项目目录 2.前端初始化全局变量和全局方法 3.跨域CORS 4.axios配置 2.轮播图功能的实现 1.安装依赖模块 2.上传文件相关配置 3.注册home子应 ...

  6. 100 天从 Python 新手到大师

    Python应用领域和就业形势分析 简单的说,Python是一个“优雅”.“明确”.“简单”的编程语言. 学习曲线低,非专业人士也能上手 开源系统,拥有强大的生态圈 解释型语言,完美的平台可移植性 支 ...

  7. Django基础模型层(77-78)

    jango框架之模型层(d77-78)一 单表操作: 1 mysql数据库:settings里配置  'default': {   # key值必须都是大写   'ENGINE': 'django.d ...

  8. 模拟django配置环境进行数据增删改查,测试的时候有用

    import os if __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE','day76.settings' ...

  9. ORM表操作

    1.在python脚本中调用django环境 在根文件夹下,创建test.py文件 import os if __name__ == '__main__': os.environ.setdefault ...

随机推荐

  1. Vue -- webpack 项目自动打包压缩成zip文件

    这段时间用 Vue2.0 开发项目,每次打包都会用到 npm run build 命令,但是每次部署时给后端发包都要手动zip压缩,这样一两次还行,但遇到项目板块测试和临时加急功能测试的时候,一天可能 ...

  2. JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架)

    JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架) 本来想实现 QQ 登录,有域名一直没用过,还得备案,好麻烦,只能过几天再更新啦. 先把实现的发送邮箱验证码更能更新了. 老规矩,更多内容在注释 ...

  3. JDK7下VisualVm插件无法链接到插件中心

      VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监控垃 ...

  4. maven学习笔记--window平台下的安装和一些基本的配置

    maven官网:http://maven.apache.org/ 系统要求如下: 安装及配置步骤 (1)下载:到Maven 的官网上去下载windows版本的Maven的安装包!下载对应的zip 格式 ...

  5. Docker相关概念

    一.概念 ①云计算:是一种资源的服务模式,该模式可以实现随时随地,便捷按需地从可配置计算资源共享池中获取所需的资源(如网络.服务器.存储.应用及服务),资源能够快速供应并释放,大大减少了资源管理工作的 ...

  6. Leetcode题解之Valid Palindrome II

    1.题目描述 2.问题分析 使用两个下标,检测下标对应的字符是否相等,若不相等,则考察子串. 3.代码 bool validPalindrome(string s) { , j = s.size()- ...

  7. zabbix agent 3.4 安装指南

    从官方网站www.zabbix.com 下载zabbix agent安装包.目前最新版本是4.0 LTS release. 在需要监控的服务器上安装zabbix agent. 先解压安装包. 配置 c ...

  8. 光杆mdf文件的导入

    场景,准备学习SSAS的时候,按照教程在微软下载了示例数据库AdventureWorksDW2012,下载来才发现只有一个mdf文件. 正好今天群里有位兄弟也碰到差不多的问题,客户数据库里的ldf文件 ...

  9. MySQL安全策略

    0.导读 MySQL被运用于越来越多的业务中,在关键业务中对数据安全性的要求也更高,如何保证MySQL的数据安全? MySQL被运用于越来越多的业务中,在关键业务中对数据安全性的要求也更高,如何保证M ...

  10. MySQL自带的性能压力测试工具mysqlslap

    mysqlslap是从MySQL的5.1.4版开始就开始官方提供的压力测试工具. 通过模拟多个并发客户端并发访问MySQL来执行压力测试,同时提供了较详细的SQL执行数据性能报告,并且能很好的对比多个 ...