$Django ajax简介 ajax简单数据交互,上传文件(form-data格式数据),Json数据格式交互
1 什么是ajax:异步的JavaScript和xml,跟后台交互,都用json
2 ajax干啥用的?前后端做数据交互:
3 之前学的跟后台做交互的方式:
-第一种:在浏览器窗口输入地址(get)
-第二种:用form表单提交数据
4 特点:
-异步(异步和同步的区别:同步是请求发过去,要等着回应;异步:不需要等回应,可以进行其他操作)
-局部刷新(*****):
5 $.ajax({
url:'/index/',
type:'post',
//data:往后台提交的数据
data:{'name':'lqz','age':18},
//成功的时候回调这个函数
success:function (data) {
alert(data)
}
})
6 上传文件
模板层:
<form action="" method="post" enctype="multipart/form-data">
$("#btn").click(function () {
var formdata=new FormData();
formdata.append('name',$("#name").val());
formdata.append('myfile',$("#myfile")[0].files[0]);
url:'/files_ajax/',
type:'post',
//不预处理数据,(name=lqz&age=18)
processData:false,
//现在用formdata对象处理了,就不需要指定编码格式了,不要给我编码了
contentType:false,
data:formdata,
success:function (data) {
alert(data)
})
def files_ajax(request):
# 提交文件从,request.FILES中取,提交的数据,从request.POST中取
name=request.POST.get('name')
print(name)
myfile = request.FILES.get('myfile')
with open(myfile.name, 'wb') as f:
for line in myfile:
f.write(line)
return HttpResponse('ok')
7 基于ajax提交json格式数据
-模板层:
<form action="" method="post" enctype="multipart/form-data"> 后台body 取到 b'name=1&age=2
$('#btn').click(function () {
var post_data={'name':$("#name").val(),'pwd':$("#pwd").val()};
console.log(typeof post_data);
// 如何把post_data这个字典,转成json格式字符串
//JSON.stringify相当于python中json.dumpus(post_data)
//pos是个字符串,json格式字符串
var pos=JSON.stringify(post_data);
console.log(typeof pos);
$.ajax({
url:'/json/',
type:'post',
data:pos,
//后台返回的字符json数据格式自动转换成obj
//dataType:'json',
contentType:'application/json',
success:function (data) {
//如果data是json格式字符串,如何转成对象(字典)?
//data=JSON.parse(data)
console.log(typeof data)
console.log(data)
var ret=JSON.parse(data)
console.log(typeof ret)
console.log(ret.status)
//alert(data)
})
})
-视图层:
def add_json(request):
if request.method=='GET':
return render(request,'json.html')
print(request.POST)
print(request.GET)
print(request.body)
import json
# res是个字典
res=json.loads(request.body.decode('utf-8'))
print(res)
print(type(res))
dic={'status':'100','msg':'登录成功'}
# 返回给前台json格式 (2种方式)
return HttpResponse(json.dumps(dic)) #里面的为str字典 返回给前台str字典,前台指定datatype;'json',自动变成字典对象
-重点:*****
- 请求的编码方式:
contentType:'application/json',
-响应回来解析的方式
dataType:'json',
随机推荐
- JavaScript深度克隆(递归)
			
今天在深度理解JQuery源码时,剖析extend时: jQuery.extend = jQuery.fn.extend = function() { //... } 感觉该方法的一部分功能与深度克隆 ...
 - string类型用法大全
			
使用标准C++中string类,要包含头文件< string > string类的构造函数 //string(const char *s); 用字符串s初始化 string s1(&quo ...
 - STL优先队列
			
#include<cstdio> #include<iostream> #include<algorithm> #include<queue> usin ...
 - Silverlight中字典的使用
			
通过值搜索字典中的项: FristOfDefault返回序列中满足条件的第一个元素:如果未找到这样的元素,则返回默认值.
 - sqlserver二进制存储
			
CREATE TABLE myTable_yq(Document varbinary(max),yq varchar(20)) --SELECT @xmlFileName = 'c:\TestXml. ...
 - asp.net写入读取xml的方法
			
添加命名空间 using System.Xml; 我自己的代码(添加其中的节点) XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load(Server.M ...
 - EcustOJ P109跳一跳(离散化+dp)
			
题目链接 感觉这道题我看了很多天,胡思乱想啊,一开始觉得记忆化搜索会可能T啊,,可能出题人的数据卡的好就稳T了的感觉..后来想了想,好像离散化一下,记一下位置之后再记忆化搜索就应该稳了吧..(好像直接 ...
 - 快速做ssh免密钥登陆
			
1.本地生成密钥并发送目标主机 >&1 #采用数字签名RSA或DSA生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub ssh-copy-id ...
 - mysql案例~非常规操作汇总
			
一 简介:此文汇总mysql不常见的数据库的操作二 mysql表修改最大自增ID 目的: 修复canal相关问题 语法: alter table a AUTO_INCREMENT=num; 执行速度: ...
 - Javascript - Jquery - 其它
			
Ajax函数 $.ajax(url, type, success, error)//url:请求的页面路径//type:请求方式//success:请求成功的回调,该函数有两个参数:服务器返回数据(d ...