2.JSON
1.JSON介绍
JSON:JavaScript Object Notation
在ajax中,允许将 复杂格式的响应数据 构建成 JSON的格式再进行响应
2.JSON表现
1.JSON表示单个对象
1.使用 {} 表示单个对象
2.在 {} 中使用 key:value 的形式来表示属性(数据)
3.Key必须要用 " " 引起来
4.value如果是字符串的话,也需要用" "引起来
var obj = {
"name":"王老师",
"age" : 30,
"gender" : "Unknown"
}
2.JSON表示一个数组
1.使用 [] 表示一个数组
2.数组中允许包含若干JSON对象 或 字符串
1.使用JSON数组表示若干字符串
var arr = ["王伟超","王夫人","王小超"];
2.使用JSON数组表示若干对象
var arr = [
{
"name":"王老师",
"age":30,
"gender":"男"
},
{
"name":"王夫人",
"age":28,
"gender":"男"
}
];
3.后台处理JSON
在后台查询出数据再转换为JSON格式的字符串,再响应给前端
1.后台先获取数据
类型允许为:元组|列表|字典
2.在后台将数据转换为符合JSON格式的字符串
3.在后台将JSON格式的字符串进行响应
4.Python中的JSON处理
import json
jsonStr = json.dumps(元组|列表|字典)
return jsonStr
Django中的JSON处理
#方法1 使用Django中提供的序列化类来完成QuerySet到JSON字符串的转换
from django.core import serializers
json_str = serializers.serialize('json',QuerySet)
return HttpResponse(json_str)
#方法2
d = {'a': 1}
return JsonResponse(d)
5.前端中的JSON处理
服务器端响应回来的数据是 String,需进行转换
JSON对象=JSON.parse(JSON字符串)
jquery对 ajax 的支持
1.$obj.load()
作用:载入远程的HTML文件到指定的元素中
$obj.load(url,data,callback)
$obj:显示响应内容的jq元素
url:请求地址
data:请求参数(可省略)
方式1:字符串传参
"key1=value1&key2=value2"
注:此种传参会使用 get 方式发送请求
方式2:使用JS对象传参
{
key1:"value1",
key2:"value2"
}
注:此种传参会使用 post 方式发送请求
callback:响应成功后的回调函数(可省略)
2.$.get() 和 $.post()
作用:通过get方式异步的向远程地址发送请求
$.get(url,data,callback,type)
url:请求地址
data:传递到服务器端的参数
可以是字符串 :"name=sf.zh&age=18"
也可以是js对象:
{
name:"sf.zh",
age:18
}
callback:响应成功后的回调函数
ex: function(data){
console.log(data)
}
type:响应回来的数据的格式
取值如下:
1.html : 响应回来 的文本是html文本
2.text : 响应回来的文本是text文本
3.script : 响应回来的文本是js执行脚本
4.json : 响应回来的文本是json格式的文本
$.post -> 请求头中的Content-Type:application/x-www-form-urlencoded; charset=UTF-8
即为表单post提交。 后台django可通过request.POST获取数据
考虑 csrf_token -> 请求参数里 拼上
csrfmiddlewaretoken