首页 > 其他分享 >前后端数据传输的编码格式,Ajax提交json格式的数据,Ajax提交文件数据,AJax结合layer弹窗实现删除的二次确认,批量插入数据

前后端数据传输的编码格式,Ajax提交json格式的数据,Ajax提交文件数据,AJax结合layer弹窗实现删除的二次确认,批量插入数据

时间:2023-08-08 14:56:25浏览次数:34  
标签:form data json django Ajax 提交 格式 数据

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

# 前后端数据传输的时候请求方式有2种:get post

我们不研究get请求的
url?a=1&b=2

# 我们只研究post请求的编码格式
三种编码格式:
urlencoded
form-data
json

# 可以通过哪些方式发送post请求
form表单
Ajax
postman

请求头中的Content-Type:参数
# 研究form表单发送post请求的时候数据的编码格式
默认提交编码格式是:application/x-www-form-urlencoded
它的数据格式是:username=dasdas&password=dasdas&gender=dasdas

# 针对application/x-www-form-urlencoded格式的数据,在Django后端是如何接收数据的
所以:Django后端针对符合urlencoded格式的数据,django把数据都封装到了request.POST中了


另外一种编码格式:multipart/form-data
# 编码格式从urlencoded改成form-data有什么效果?
form表单就可以提交文件数据了
它的数据格式又是什么样子的呢?
Content-Type:
multipart/form-data; boundary=----WebKitFormBoundary7iwnnLo3TDiHIAQz--->文件数据

# 针对multipart/form-data格式的数据,Django后端是如何接收数据的?
针对普通数据django把数据封装到了request.POST中
针对文件数据django把数据封装到了reuqest.FILES中

Ajax提交post请求的数据时候,编码格式又是怎样的?
# 默认的提交格式是:application/x-www-form-urlencoded; a=1&b=2
Django后端针对符合urlencoded格式的数据,django把数据都封装到了request.POST

Ajax提交json格式的数据

提交json格式的数据必须满足两个条件:
1. 你的编码格式必须是json格式的:contentType参数
2. 你的数据必须是json {"a":1}

# 针对json格式的数据,Django后端又是如何处理的?
针对ajax提交的json格式的数据,django后端不在把数据封装到request.POST中了

# 对于json格式的数据,django后端不在做任何的封装,数据是纯原生的,发送过来的数据是二进制形式的
# 我们自己来处理这些二进制数据

# js中序列化
JSON.stringify({'a': 1, b: 2})  ----------》{'a': 1, b: 2} 对象
contentType:'application/json',
    

# django后端接收json格式的数据
json_str = request.body.decode('utf-8')
print(json_str)  # {"a":1,"b":2}

json_data = json.loads(json_str)
print(json_data)  # {'a': 1, 'b': 2}
print(json_data.get('a'))

Ajax提交文件数据(重要)

var username = $("#username").val();
var password = $("#password").val();

// 文件数据
{#var myfile = $("#myfile")[0].files[0];#}
    var myfile= $("#myfile")[0].files[0];

    // 发送文件数据到后端需要借助于FormData对象
    var myFormDataObj = new FormData();
    myFormDataObj.append('username', username);
    myFormDataObj.append('password', password);
    myFormDataObj.append('myfile', myfile);


    $.ajax({
        url: '',
        type: 'post',
        data: myFormDataObj, // {}
        contentType:false, // 告诉浏览器不要做任何的编码格式处理,django自己来做处理
        processData:false, // 告诉浏览器不要对我处理的数据做任何的处理
        success: function (res) {
            {#console.log(res)#}
            }
        });

AJax结合layer弹窗实现删除的二次确认

# 我们使用第三方的UI弹窗:layer、sweetalert、
https://layuiweb.com/doc/element/form.html ----------> layui
    
    
https://layuiweb.com/layer/index.htm---------------->layer

批量插入数据

# 在django中批量插入数据
# for i in range(10000):
    #     models.UserInfo.objects.create(username='jerry_%s' % i)
    """为什么插入的数据很慢?"""
    # insert into userinfo values('jerry');
    # insert into userinfo values('jerry'), ('jerry_2'), (),('jerry'), ('jerry_2'), ();
    user_obj_list = []
    for i in range(100000):
        user_obj = models.UserInfo(username='jerry_%s' % i)
        user_obj_list.append(user_obj)
        print('jerry_%s' % i)

    '''开始操作数据库'''
    models.UserInfo.objects.bulk_create(user_obj_list)

标签:form,data,json,django,Ajax,提交,格式,数据
From: https://www.cnblogs.com/huangchunfang/p/17614310.html

相关文章

  • C#/.NET/.NET Core优秀项目和框架每周精选(坑已挖,欢迎大家踊跃提交PR或者Issues中留言)
    思维导航前言项目地址项目分类(善用Ctrl+F)项目列表加入DotNetGuide技术交流群前言注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯......
  • DataFrame 存为带格式的excel文件
    importpandasaspddata={'Name':['Alice','Bob','Charlie'],'Age':[25,30,35],'Salary':[50000,60000,45000],'Location':['NY','CA',�......
  • SQL中CONVERT函数格式:CONVERT(data_type,expression[,style])
    sqlserverconvert()函数的使用方法_convertsqlserver_qq_37528515的博客-CSDN博客SQL中CONVERT函数格式:CONVERT(data_type,expression[,style])说明:data_type:目标系统所提供的数据类型,如果转换时没有指定数据类型的长度,则SQLServer自动提供长度为30。expression:是任......
  • 遇到的问题--python---代码格式层级错误导致if判断无效
    情况我们在运行python脚本时没有报错,但是发现if判断没有生效,python的格式很严格,也很深坑。原因if的层级超过了变量赋值语句的层级,所以判断无效。我们看看我们的代码如下:python对代码的格式要求很严格,第一行需要顶格写,然后根据冒号:后续的代码行需要有缩进,并且有层级。同样的......
  • kettle案例一抽取gz格式文本内容保存到mongodb
    版本和启动我们这里使用的7.1版本,官网下载的安装包为pdi-ce-7.1.0.0-12.zip。安装目录下非常多的执行程序,但没有明显的启动图标。Kettle常用三大家族:Spoon、Pan、Kitchen。Spoon:通过图形界面方式设计、运行、调试Job与Transformation。Pan:通过脚本命令方式来运行Transform......
  • Asp.Net WebApi防重提交
     一、添加过滤器///<summary>///重复提交///</summary>publicclassReSubmitAttribute:ActionFilterAttribute{///<summary>///操作成功提示消息///</summary>publicstringSuccessMsg=null;......
  • Ajax技术、MTV和MVC的概念
    一、Ajax技术1、AJAX(AsynchronousJavascriptAndXML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)。局部刷新、一步提交2、作用前端技术,把前端的数据提交到后端的。Ajax......
  • SqlServer时间格式化
       sqlserver日期格式化中文-年月日selectconvert(varchar,datepart(yy,getdate()))+N'年'+convert(varchar,datepart(mm,getdate()))+N'月'+convert(varchar,datepart(dd,getdate()))+N'日',cast(datepart(yy,getdate())asvarchar)+N'年......
  • IDE committ规范及要求——多次提交的committ通过rebase合并---深入一点点-遇到merge
    1.强推-命令行操作//中止正在进行的Gitrebase操作的命令gitrebase--abort//将当前分支重命名为backupgitbranch-mmini_alarmmini_alarm_backup//用远端主分支拉gitcheckout-bmini_alarmupstream/master//gitk会打开一个图形界面窗口,显示当前目录下Git仓库......
  • 第二代串口屏UI编辑工具素材格式要求
    UI_Editor是乐升半导体公司开发的一款针对TFT串口屏的显示功能开发的软件,使用UI_Editor编辑工具,用户可以快速对TFT串口屏进行显示功能的开发,使得用户从繁杂的UI开发中挣脱出来,把更多的精力放在底层功能的真正实现上来。按照UI_Editor的使用说明(详情查看乐升半导体公司官网),使......