Flask的jsonify模块、json前后端交互数据、$.ajax()⽅法详解⼀、Flask中可以使⽤Python⾃带的json模块,也可以使⽤Flask中的jsonify
代码⽰例:
from flask import Flask, jsonify
app = Flask(__name__)
json_data = [
{"name":"json", "age":123}
]
@ute('/jsontest', methods=['GET'])
def get_json():
return jsonify({'data': json_data})      #使⽤jsonify之后会转成对象格式
app.run()
⼆、JSON 前后端交互数据
交互数据概念
当数据在浏览器和服务器之间交互时,数据只能是⽂本(也可以理解为字符串格式)
JSON属于⽂本,我们需要把JavaScript对象转换成JSON,然后将JSON发送到服务端,也可以从服务器将JSON发送到前端转换成JavaScript对象
将JavaScript对象转成JSON格式字符串使⽤JSON.stringify()
如果你的数据存储在JavaScript对象中,你需要把该对象转成JSON格式字符串,然后将其发送到服务器。使⽤JSON.stringify()
⽰例:
var myObj = { name:"Bill Gates",  age:62, city:"Seattle" };
var myJSON =  JSON.stringify(myObj);
window.location = "demo_json.php?x=" + myJSON;
将JSON格式字符串转成JavaScript对象使⽤JSON.parse()
JSON格式接收到数据,将其转换成JavaScript对象,使⽤:JSON.parse()
⽰例:
var myJSON = '{ "name":"Bill Gates",  "age":62, "city":"Seattle" }';
var myObj =  JSON.parse(myJSON);
三、$.ajax()⽅法详解(常⽤参数)
1.url    要求为String类型的参数,(默认为当前页地址)发送请求的地址url: '/labels_csv/'
3.data  要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将⾃动转换为字符串格式{"ta": ta_csv}
5.dataType    要求为String类型的参数,预期服务器返回的数据类型dataType:'json'
6.success  要求为Function类型的参数,请求成功后调⽤的回调函数,有两个参数。
(1)由服务器返回,并根据dataType参数进⾏处理后的数据。
(2)描述状态的字符串。
success:function (data) {
alert(data)
}
⽰例:
$.ajax({
url:'',
type:'post',
data:pos,  //发送的数据
contentType:'application/json',  //告诉后端你这次的数据是json格式
      dataType:'json',
success:function (data) {
alert(data)
}
})
python json字符串转数组常⽤部分参数详解
1.GET请求中将data数据附加在url后,POST请求将data数据发送给服务器。
2.POST请求必须设置请求头Content-Type值为application/x-form-www-urlencoded,默认是application/x-form-www-urlencoded
四种常见的POST提交数据⽅式
(1)application/x-www-form-urlencoded    默认的
(2)multipart/form-data
(3)application/json    ⼀般设置json格式数据
(4)text/xml
3.data:服务器返回的数据
GET请求中将data数据附加在url后,对象必须是key/value格式,例如{foo1:"bar1",foo2:"bar2"}转换为: ?foo1=bar1&foo2=bar2如果是数组,例如{foo:["bar1","bar2"]}转换为:  ?foo=bar1&foo=bar2
POST请求将完整的数据传给前端页⾯
4.dataType:预期服务器返回的数据类型
xml:返回XML⽂档,可⽤JQuery处理
html:返回纯⽂本HTML信息,包含的script标签会在插⼊DOM时执⾏
script:返回纯⽂件JavaScript代码
json:返回JSON数据
text:返回纯⽂本字符串

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。