zoukankan      html  css  js  c++  java
  • 分页器


    昨日回顾:
    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
    4 前端:
    -input,取出value的值
    取值:$("#id").val()
    赋值:$("#id").val(要赋的值)
    5 上传文件
    var formdata=new FormData()
    formdata.append(key,value)
    //jq取文件
    //$('#myfile')[0].files[0]
    $.ajax({
    url:请求的地址,
    type:请求方式,(post,get....)
    contentType:false,
    processData:false,
    data:formdata,往后台发送的数据
    success:function (data){
    //data的数据类型,不一定
    //异步的,成功返回,才能回调

    }

    })
    默认处理数据:name=lqz&age=18
    后台:
    -request.FILES----->字典
    -根据名字取出文件,for循环文件存到本地
    -上传的文件:保存到相对路径下
    6 上传json格式
    -对象转成json格式字符串(类比json.dumps())
    -JSON.stringify(对象)
    -json格式字符串,转成对象
    -JSON.parse(json格式字符串)(类比json.loads())
    $.ajax({
    url:请求的地址,
    type:请求方式,(post,get....)
    contentType:'application/json',
    data:json格式字符串,
    success:function (data){
    //data的数据类型,不一定
    //异步的,成功返回,才能回调

    }

    })
    --application/json请求的时候,写了,后台django程序,一读到是这种编码格式,它就不处理数据了
    --从body中取出b'',再做处理


    基于ajax的登录验证:
    -后台:
    -前台如果是urlencoded编码,直接从POST中取出数据
    -前台如果是json编码,从body中取出,处理
    -返回用:JsonResponse(dic),也可以用HttpRespone,(前端相应处理)
    -前台:
    -取到id为error的元素,把data.msg的内容,放到里面,然后给它设置样式,颜色是红色
    -$("#error").html(data.msg).css({'color':'red','margin-left':'10px'})
    -定时器:
    就是一个函数,传了两个参数,一个匿名函数,一个时间,
    在匿名函数中写要处理的逻辑:
    -清空span标签中的内容
    -$("#error").html("")



    今日内容:

    分页器:
    -干啥的?数据量大的话,可以分页获取,查看
    基本写法:
    后端:
    -总数据拿出来
    -生成分页器Paginator对象(对象里有属性和方法)
    -生成当前页的对象,current_page=paginator.page(当前页码)
    -取出前台传过来的页码,current_page_num = int(request.GET.get('page'))
    -需要有异常捕获
    -捕获到,把当前页码设置成第一页


    前端:
    -for循环总页列表
    -点某一页,跳到指定页码,<li><a href="/index/?page={{ foo }}">{{ foo }}</a></li>

    -上一页,下一页的处理:需要有判断,判断是否有上一页,下一页
    -终极版:
    #判断总页码数是否大于11,不大于11,走else:把总页码数,赋给page_range(前端循环页码列表,循环的就是page_range)
    if paginator.num_pages >11:
    # 当前页码数-5大于1的时候,page_range应该是,page_range就是1到11页?
    if current_page_num-5<1:
    page_range=range(1,12)
    elif current_page_num+5>paginator.num_pages:
    # 当前页码数+5大于总页码数,总页码-10,到总页码+1之间
    page_range=range(paginator.num_pages-10,paginator.num_pages+1)
    else:
    #其他情况,左5,右6推算,也就是:range(current_page_num - 5, current_page_num + 6)
    page_range = range(current_page_num - 5, current_page_num + 6)
    else:
    #小于11,有多少页,就显示多少页
    page_range=paginator.page_range


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

    作业:
    1 装饰器,处理前端传的json格式数据(****)
    2 遍历一个文件夹,打印出该文件夹下所有的py文件(**)
    3 基于ajax查询所有用户(返回到前端json格式,初级要求:把这个字典显示在页面上,高级要求:用table拼)(***)
    4 闭眼写出分页(*****)
    最低要求,完成四颗星

  • 相关阅读:
    信息技术手册查重错误比对分析程序开发记录04
    信息技术手册查重错误比对分析程序开发记录03
    信息技术手册查重错误比对分析程序开发记录02
    第一周博客01——设计模式原则总结
    react 性能优化
    h5 rem js自动适配
    JavaScript深拷贝实现原理简析
    word,excel,ppt在线预览功能
    react-route4 学习记录
    README 语法记录
  • 原文地址:https://www.cnblogs.com/fushaunglin/p/10033861.html
Copyright © 2011-2022 走看看