Django10:Ajax介绍/发送数据/SweetAlert

Ajax

异步提交

局部刷新

 

发送方式
1. 浏览器输入url,按enter       get

2.a标签href属性                       get

3.form表单                                get/post

4. ajax                                       get/post

 

ajax 不是编程语言,是先有标准的新方法。

只学习jQuery封装之后的版本(不学原生)

    $(".del").on("click", function () {// 向后端发送删除的请求$.ajax({// 1.指定发送后端url: "/delete/",  //不写,就是当前地址//请求方式type: "post",  //不指定,默认get,都是小写// 数据data: {"id":delId},// 回调函数:返回结果时自动触发,args是后端返回的结果success:function (arg) {swal(arg, "你可以跑路了!", "success");$trEle.remove();});});})

后端

def index(request):if request.method == 'POST':back_dic = {'msg':'hahaha'}return HttpResponse(json.dumps(back_dic))  #  要自己手动反序列化return JsonResponse(back_dic)  # 前端能自动反序列化return render(request,'index.html')
ajax补充:
dataType:'JSON'如果使用HttpResponse ,会自动转换json格式

 

前后端交互的数据编码格式

form表单默认是urlencoded编码格式传输数据
urlencoded数据格式:username=jason&password=123django后端针对该格式的数据 会自动解析并帮你打包到request.POST中formdata数据格式:django后端针对符合urlencoded编码格式数据(普通键值对)还是统一解析到request.POST中而针对formdata文件数据就会自动解析放到request.FILES中application/jsondjango后端针对json格式数据 并不会做任何的处理而是直接放在request.body中

 

ajax发送数据

 

默认urlencoded编码格式

前后端数据交互 编码格式与数据格式一定要一致
声明什么编码格式,就用传什么格式

ajax发送json格式

$('#d2').on('click',function () {$.ajax({url:'',type:'post',contentType:'application/json',  // 修改content-Type参数data:JSON.stringify({'username':'jason','password':123}),  // 将数据序列化成json格式字符串success:function (data) {alert(data)}})})

补充:request.is_ajax();判断是不是ajax请求

 

前端不会处理json格式的数据,而是直接塞进request.body中。我们自己处理json格式数据,拿到的是二进制json

def ab_ct(request):if request.method == 'POST':# 自己处理json格式数据json_bytes = request.body# 扩展 json.loads能够自动解码并序列化json_dict = json.loads(json_bytes)print(json_dict,type(json_dict))print(request.POST)print(request.FILES)return render(request,'ab_ct.html')

ajax发送json格式数据注意点

1.contentType:'application/json',

2. data 数据是真正的json数据

3.django后端不会处理json数据,需要手动request.body获取和处理

 

ajax发送文件

ajax发送文件(******)内置对象FormData即发普通键值对也发文件// ajax发送文件数据  需要借助于内置对象$('#d3').click(function () {// 1 需要先生成一个内置对象var myFormData = new FormData();// 2 传普通键值对  当普通键值对较多的时候 我们可以利用for循环来添加myFormData.append('username','jason');myFormData.append('password',123);// 3 传文件myFormData.append('myfile',$('#i1')[0].files[0]);  // 获取input框内部用户上传的文件对象// 发送ajax请求$.ajax({url:'',type:'post',data:myFormData,// 发送formdata对象需要指定两个关键性的参数processData:false,  // 让浏览器不要对你的数据进行任何的操作contentType:false,  // 不要使用任何编码格式 对象formdata自带编码格式并且django能够识别该对象success:function (data) {alert(data)}})})

 

SweetAlert

< script >
function Delete(obj) {var article_id = $(obj).attr("article_id"); {#console.log(article_id);#}swal({title: '确定删除吗?',text: '你将无法恢复它!',type: 'warning',showCancelButton: true,confirmButtonColor: '#d33',cancelButtonColor: '#3085d6',confirmButtonText: '确定!',}).then(function(value) {if (value.value) {$.ajax({url: "/JiaBlog/article/" + article_id + "/editor/delete/",type: 'POST',data: {csrfmiddlewaretoken: $("[name='csrfmiddlewaretoken']").val(),article_id: article_id,},success: function(result) {var status = result.result;if (status == 'success') {swal('删除成功!', '你的文件已经被删除。', 'success');} else {swal('出错啦。。。', "error"); //后端删除失败}setTimeout(function() {window.location.reload()},1000);}})} else {swal('已取消!', '', 'error')}})
}< /script>/

 

参考:

https://www.cnblogs.com/guyouyin123/p/12173020.html

https://blog.csdn.net/ssjdoudou/article/details/90727543

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物联网数据终端演进之道

智能手机的普及在最近几年掀起了一股取代企业数据终端的风潮&#xff0c;但正如笔者在一年前便提到过 的&#xff0c;“智能手机难以在企业级应用中得以普及”&#xff0c;这种观点最好的佐证便是时至今日&#xff0c;由于安全性与管理合规的需要&#xff0c;个人计算机用于企业…

mac 不能连接wi-fi_如何阻止Mac自动连接到Wi-Fi网络

mac 不能连接wi-fiYour Mac automatically reconnects to Wi-Fi networks you’ve previously connected to. Starting with macOS High Sierra, you can now tell your Mac not to automatically connect to certain Wi-FI networks. Your Mac will remember the Wi-Fi networ…

“玩转课堂”基本构想

1、项目背景随着互联网科技的高速发展&#xff0c;人们的生活、学习和工作中的许多事情都可以借助互联网来完成&#xff0c;并且反响良好。作为学生&#xff0c;我们切身体会到&#xff0c;能够使用网络平台来进行学习可以节约时间、并且十分方便&#xff1b;而在老师的角度&am…

SQLServer之分离数据库

分离数据库注意事项 要求具有 db_owner 固定数据库角色中的成员资格。 可以分离数据库的数据和事务日志文件&#xff0c;然后将它们重新附加到同一或其他 SQL Server实例。 如果要将数据库更改到同一计算机的不同 SQL Server 实例或要移动数据库&#xff0c;分离和附加数据库会…

django11:自动序列化/批量插入数据/分页器

自动序列化 借助serializers帮你自动完成序列化 from app01 import models from django.core import serializers def ab_se(request):user_queryset models.Userinfo.objects.all()#原始方法user_list []for user_obj in user_queryset:user_list.append({username:user_o…

罗汉塔最少步骤_如何以最少的步骤压缩和密码保护文件?

罗汉塔最少步骤If you have a large batch of files to compress and you want to add password protection to each of them, what is the simplest or quickest way to do so? Today’s SuperUser Q&A post has the answer to a curious reader’s question. 如果要压缩…

IoTSharp中使用X509加密MQTT通讯并实现设备鉴权

IoTSharp支持MQTT协议通过 TLS 1.2 加密通讯&#xff0c; 并可以通过X509证书进行设备认证登录。基本配置在 appsettings.Production.json中需要 指定域名&#xff0c; 并设置EnableTls为true"MqttBroker":{"DomainName":"http://demo.iotsharp.net:2…

IBM希望其“裁剪”过的Swift能够引诱你使用BlueMix云

现在所有人都可以使用了——微软顶尖的工程师表示&#xff0c;“呼吸新鲜的空气吧&#xff01;” 据Stack Overflow的估计&#xff0c;Swift在最受欢迎的编程语言中排名第二&#xff0c;该语言已经出现在了IBM的BlueMix云平台之上&#xff0c;供所有人使用。 她从今年二月份开始…

物理层、数据链路层、介质访问控制子层

物理层 物理层定义了比特作为信号在信道上发送时相关的电气、时序和其它接口&#xff0c;物理层是构建网络的基础。数据通信理论基础&#xff1a;改变诸如电压或者电流等某种物理特性的方法可用来在电线上传输信息&#xff0c;如果用一个以时间t为自变量的单值函数 f(t) 来表示…

如何批量删除指定的GitHub Repos

正常情况下&#xff0c;如果需要删除GitHub上不需要的repos&#xff0c;手动删除的操作有点繁琐。如果只要删除一个还能接受&#xff0c;手动删除多个repos就有点浪费时间了。其实我们可以通过GitHub的API接口来批量删除不需要的repos。 将要删除的repos按照username\repos-nam…

django12:form 组件/渲染标签/数据校验/钩子函数/

基本用法 from django import forms# 自己写一个类 class RegForm(forms.Form):username forms.CharField(min_length3,max_length8, label"用户名")password forms.CharField(min_length3,max_length8,label"密码")emailforms.EmailField() 1.校验数据为…

如何快速拥有一个 Web IDE

本文将介绍如何使用 2-3 句指令在几分钟内创建一个 Web IDE 环境。服务器准备如何准备服务器可以参考上文 一键体验 Istio&#xff0c;这里只需要一台即可&#xff0c;示例中的服务器 IP 为&#xff1a;43.154.189.116安装 Web IDE下载安装工具在服务器上&#xff0c;执行以下指…

有了防火墙、IPS、WAF 还需要数据库审计?

本文讲的是 有了防火墙、IPS、WAF 还需要数据库审计&#xff1f;&#xff0c;“我们的网络安全系统中已经有了Web应用防火墙、网络防火墙和IPS&#xff0c;难道还需要数据库审计吗&#xff1f;”很多人有这样的疑问&#xff0c;网络中有层层防护&#xff0c;还不能保护数据库的…

20155339 Exp4 恶意代码分析

20155339 Exp4 恶意代码分析 实验后回答问题 &#xff08;1&#xff09;如果在工作中怀疑一台主机上有恶意代码&#xff0c;但只是猜想&#xff0c;所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些&#xff0c;用什么方法来监控。 监控网络连接。当某个…

Linux就该这么学---第七章(LVM逻辑卷管理器)

第七章节-LVM技术逻辑卷管理器(LVM,Logical Volume Manager)1.物理卷(PV,physical Volumn)2.卷组(VG,Volume Group)3.逻辑卷(LV,Logical Volume)基本单元[PE,Physical Extent] 物理卷处于LVM中的最底层&#xff0c;可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列卷组建立在…

django13:Session与Cookie操作

Session与Cookie cookie 服务端保存在客户端浏览器上的信息都可以教cookie 表现形式一般是k:v键值对&#xff08;可以多个&#xff09; 优化&#xff1a; 随机字符串1&#xff1a;用户1相关信息 随机字符串2&#xff1a;用户2相关信息 session 数据是保存在服务端 表现形…

从Windows XP升级? 这是您需要了解的Windows 7

With Windows XP reaching the end of its long support life, many businesses and individuals are avoiding Windows 8 and upgrading to Windows 7 instead. If you’re a latecomer to Windows 7, here are the basics you need to know. 随着Windows XP使用寿命的延长&am…

Java迭代器原理

1迭代器模式 迭代器是一种设计模式&#xff0c;这种模式用于顺序访问集合对象的元素&#xff0c;不需要知道集合对象的底层表示。 一般实现方式如下&#xff1a;&#xff08;来自&#xff09; public interface Iterator {public boolean hasNext();public Object next(); } pu…

企业版Java EE正式易主 甲骨文再次放手

有人说甲骨文收购的东西大多没有了好下场&#xff0c;这么说虽然有些片面&#xff0c;但是最近一个月Java EE和Solaris的境遇难免让人产生类似的联想。 继笔者上次报道《甲骨文将放弃Java EE 开源基金会双手欢迎》之后&#xff0c;最新消息显示&#xff0c;原本在甲骨文手中的J…

js中各种位置

js中各种位置 js中有各种与位置相关的属性,每次看到的时候都各种懵逼。索性一次总结一下。 clientHeight 内容可视区域的高度。包括padding不包括border、水平滚动条、margin。对于inline的元素这个属性一直是0&#xff0c;单位px&#xff0c;只读元素。offsetHeight offsetHei…