昨日内容回顾 ajax
Ajax
异步提交,局部刷新
Ajax其实就是JS自带的功能,不是一门新的技术点,JQuery封装之后的版本
# 基础语法
$.ajax({
url:"", # 控制数据的提交地址
type:"", # 控制请求的方式默认是get请求
data:{}, # 组织提交的数据
success:function(形参){
异步回调函数
}
})
数据编码格式
Content-Type
urlencoded
不支持携带文件数据,form表单和Ajax默认的编码格式
数据格式:name=jsaon&pwd=123&hobby=DBJ
Django后端统一处理到request.POST中
formdata
数据格式:无法查阅
支持携带文件数据,form表单可以指定的编码格式
Django后端自动将文件数据处理到request.FILES,普通数据request.POST中
application/jason
数据格式:json格式
发送json格式数据,ajax可以指定的编码格式
Django后端不会处理,都存放在request.body中(bytes类型)需要自己处理
语法注意事项:
data:JSON.stringfy({'name':'jason','pwd':123}),
contentType:'application/json '
FormData对象
ajax携带文件数据的方式
data:formDataObj,
contentType:false,
processData:false,
Django针对携带文件数据的对象会处理成request.POST,request.FILES
ajax携带文件数据
$('#d3').click(function () {
# 1.产生内置对象
let formData = new FormData();
# 2.添加普通数据
formData.append('username',$('#d1').val())
# 3.添加文件数据
formData.append('file', $('#d2')[0].files[0])
# 4.发送ajax请求
$.ajax({
url:'',
type:'post',
data:formData,
contentType:false, # 不使用任何编码
processData:false, # 不处理数据对象
success:function (args) {
}
})
})
回调函数
后端跟ajax交互,不应该返回页面,通常情况下都是返回jason格式数据
前端针对HttpResponse和JsonResponse返回的json格式数据吃力策略不同
针对JsonResponse会自动反序列化
针对HttpResponse不会自动反序列化,需要添加参数 dataType:'JSON'
序列化
def ser(request):
#拿到用户表里面的所有的用户对象
user_list=models.User.objects.all()
#导入内置序列化模块
from django.core import serializers
#调用该模块下的方法,第一个参数是你想以什么样的方式序列化你的数据
ret=serializers.serialize('json',user_list)
return HttpResponse(ret)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)