zoukankan      html  css  js  c++  java
  • Django ajax 笔记

    1.后端数据编码格式的不同

    '''
        1. 3种编码格式
            urlencoded
            
            formdata
            
            json
            
        2.默认的数据格式编码urlencoded
            2.1 数据格式编码urlencoded 数据格式 username=json&passowrd=123
            
                django后端针对urlencode编码格式的数据会自动解析封装到request.POST中
                usrname=jason&password=1234  >>>request.POST
            
           
           2.2如果编码格式改成enctype=multipart/form-data.增加的文件格式
           
                那么 普通的键值对还是解析到 request.POST 中,文件解析到request.FILES中。
            
            
            
           2.3 form表单无法发送jason格式的。 
           
           
           
        3.ajax 默认的编码格式也是urlencoded
            
            
            3.1如何指定编码格式
                ajax 中 contentType:'application/json' 
                data:JSON.stringify({'username':'aaa','age':23}),
                
                现在向后端发送的数据格式"username":"aaa","age":23
                
                
            后端 如何判断是ajax请求
                if request.is_ajax():
                
                django 对ajax的请求不会做任何处理
                针对前段发送过来的json 格式 request.body 格式
                
                import json
                
                json_bytes = request.body
                json_str = json_bytes.decode('utf-8')
                json_dict = json.loads(json_str)
                print(json.dict,type(json.dict))
         
         
         4.ajax发送文件-------前段
            4.1需要先利用FormData 内置对象
                在ajax的前面  
                 $("#btn").click(function(){  添加以下代码  })
                let formDataObj = new FormData();
                formDataObj.append('username',$("#id1").val())
                formDataObj.append('password',$("#id2").val())
                添加文件对象
                forDataObj.append('myfile',$("#d3")[0].files[0])
                
                
                以下为ajax的配置
                
                $.ajax({
                    url:'',
                    type:'post',
                    data:formDataObj,//直接将对象放在data中。
                    contentType:false, //不需要任何编码 django后端能够自动识别formData第一项
                    processDate:false, //告诉浏览器,不要对数据进行任何处理
                })
                           
              
            4.2.后端   
                if request.is_ajax():
                    if request.method=="POST":
                        print(request.POST) 
                        print(request.FILES)         
    '''
    

    5.后台序列化组件

    from django.core import serializers
    res = serializers.serialize('json',user_uquerset)
    return HttpResponse(res)
    

    6批量插入数据

    models.Book.objects.bulk_create(book_list)
  • 相关阅读:
    Oracle导入导出命令
    深入理解JSP/Servlet Session会话管理机制
    Weblogic domain密码的重置方法
    RPC关键要点
    Ubuntu如何配置Telnet服务器
    Win7如何解决telnet不是内部或外部命令!
    Linux系统下的文件权限
    虚拟机系统ubuntu安装VMWare Tools
    SQL模糊查询 LIKE
    Ubuntu下安装SSH
  • 原文地址:https://www.cnblogs.com/ttym88m/p/14417916.html
Copyright © 2011-2022 走看看