一、设计原型
MTV模型(django):
M:模型层(models.py)
T:templates
V:views
MVC模型:
M:模型层(models.py)
V:视图层(views.py)
C:控制器(Controller) urls.py
django的MTV也是MVC,叫法不一样,设计不一样,但本质一样。
二、前后端数据传输格式
urlencoded 对应的数据格式:name=jason&password=666 后端获取数据:request.POST ps;django会将urlencoded编码的数据解析自动放到request.POST formdata form表单传输文件的编码格式 后端获取文件格式数据:request.FILES 后端获取普通键值对数据:request.POST application/json ajax发送json格式数据 需要注意的点 编码与数据格式要一致
三、Ajax异步请求
1.前端有哪些方式可以朝后端发请求
浏览器窗口手动输入网址 get请求 a标签的href属性 get请求 form表单 get/post请求(默认是get请求) ajax get/post请求
2.ajax特点:
异步提交
局部刷新
3.ajax基本语法
提交的地址(url) 提交的方式(type) 提交的数据(data) 回调函数(success) $('#d1').click(function () { $.ajax({ // 提交的地址 url:'/index/', // 提交的方式 type:'post', // 提交的数据 data:{'name':'jason','password':'123'}, // 回调函数 success:function (data) { // data接收的就是异步提交返回的结果 alert(data) } }) })
4.ajax默认传输数据
编码格式也是urlencoded
5.前后端传输数据
你不能骗人家,数据是什么格式就应该告诉别人是什么格式(数据与编码要一一对应)
$('#d1').click(function () { $.ajax({ url:'', // url参数可以不写,默认就是当前页面打开的地址 type:'post', contentType:'application/json', data:JSON.stringify({'name':'jason','hobby':'study'}), success:function (data) { {#alert(data)#} {#$('#i3').val(data)#} } }) });
6.ajax传输文件
$('#d1').click(function () { let formdata = new FormData(); // FormData对象不仅仅可以传文件还可以传普通的键值对 formdata.append('name','jason'); // 获取input框存放的文件 //$('#i1')[0].files[0] formdata.append('myfile',$('#i1')[0].files[0]); $.ajax({ url:'', type:'post', data:formdata, // ajax发送文件需要修改两个固定的参数 processData:false, // 告诉浏览器不要处理我的数据 contentType:false, // 不要用任何的编码,就用我formdata自带的编码格式,django能够自动识别改formdata对象 // 回调函数 success:function (data) { alert(data) } }) });
7.form表单与ajax异同点
1.form表单不支持异步提交局部刷新
2.form表单不支持传输json格式数据
3.form表单与ajax默认传输数据的编码格式都是urlencoded