zoukankan      html  css  js  c++  java
  • ajax回顾

    choice参数

     class Userinfo(models.Model):
            username = ...
            age = ...
            gender_choice = (
                (1,'male'),
                (2,'female'),
                (3,'others'),
            )
            gender = models.IntegerField(choices=gender_choice)
            # gender存的是数字 如果数字在上面的对应关系中 那么在取值的时候 可以通过
            user_obj.gender  # 数字
            user_obj.get_gender_display()  # 取到的就是数字对应的解释
            # 如果存的数字不在范围内  拿到的还是数字本身
    

    MTV与MVC模型

    MTV:
        M:models
        T:templates
        V:views
            
    MVC:
        M:models
        V:views
        C:controller
         本质:MTV其实也是MVC
    

    Ajax

    异步提交

    局部刷新

    我们所用的ajax是基于jQuery封装好简易版本,所以在写ajax时候一定要确保导入jQuery

    ajax基本语法结构
        $.ajax({
            url:'',  # 指定朝哪个后端地址发送请求  不写默认朝当前地址提交
            type:'post',  # 指定提交方式
            data:{'username':'jason','password':'123'},
            success:function(data){  # data指代的就是后端返回的异步提交的结果
                # 异步回调机制逻辑处理代码
            }
        })
    

    前后端传输数据的编码格式

    编码格式种类
        1.urlencoded
        2.formdata
        3.application/json
    
    form表单
        form表单默认的编码格式是urlencoded
            urlencoded编码格式的数据特点
                username=jason&password=123&age=18
            # django后端针对符合urlencoded数据格式 会自动解析 并给你封装到request.POST中
            
            # 你可以通过制定enctype参数来修改form表单提交数据的编码格式
            # form表单传输文件的时候  编码格式就必须有默认的改为formdata
            """
            即可以传普通的键值对也可以上传文件
            
            django后端针对只要是符合urlencoded格式的数据都会自动解析放到request.POST
            针对文件数据 会解析并放到request.FILES
            """
    
    
    ajax  默认的数据编码格式也是urlencoded
        也就意味着ajax发送post请求django后端默认也是通过request.POST获取数据
        
    ajax发送json格式数据
        如何查看前端提交数据的编码格式?
            在请求头中有一个content-Type参数
        """
        前后端交互数据的时候 一定要做到数据个编码格式的一致性
        """
        1.需要手动指定编码格式
            contentType:'application/json'
        2.一定要确保数据也是符合json格式的
            data:JSON.stringify({'username':'jason'})
        
        # django后端针对json格式的数据 是不会做任何处理的  会原封不动的放在request.body中
        你可以手动去处理获取数据
            
            1.将bytes类型转成json格式字符串
            2.利用json模块json.loads反序列化出来
            
        
    ajax传输文件
        ajax传文件 需要使用到js内置对象  FormData
        该对象及可以携带普通的键值对 给django后端的request.POST也可以携带文件给django后端的request.FILES
        
        # 1.现生成一个formdata对象
        var MyFormData = new FormData();
        # 2.添加普通的键值对
        MyFormData.append('username','jason');
        MyFormData.append('password','123');
        # 3.添加文件
        var fileObj = $('#myfile')[0].files[0];
        MyFormData.append('myfile',fileObj)
        """
        如何获取type=file的input标签存储的用户上传文件
        """
        $.ajax({
            url:'',
            type:'post',
            data:MyFormData,
            # 需要手动指定两个关键性的参数
            contentType:false,
            processData:false,
            success:function(data){
                ...
            }
       
        })  
        
      序列化组件
            from django.core imprt seralizers
            
            user_queryset = models.Userinfo.objects.all()
            
            res = seralizers.Seralizer('json',user_queryset)
            """
            res = [{},{},{}]
            """
            return HttpResponse(res)   
    
  • 相关阅读:
    Mariadb Galera Cluster 群集 安装部署
    RabbitMQ Cluster群集安装配置
    Glance 镜像服务群集
    Nova控制节点集群
    openstack集群环境准备
    http高可用+负载均衡 corosync + pacemaker + pcs
    cinder块存储控制节点
    cinder块存储 后端采用lvm、nfs安装配置
    web管理kvm ,安装webvirtmgr
    kvm虚拟机管理 系统自动化安装
  • 原文地址:https://www.cnblogs.com/aden668/p/11759843.html
Copyright © 2011-2022 走看看