Flask web开发 处理Ajax请求
Posted 51kata
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask web开发 处理Ajax请求相关的知识,希望对你有一定的参考价值。
本文介绍如何处理ajax请求,
一、处理ajax的post请求
举例一:
js代码举例如下:
var id = obj.parentNode.parentNode.id; $.post("/delitem/"+id, {}, function(data){ showData(data); },"json");
对应的flask代码举例如下:
@app.route(‘/delitem/<id>‘, methods=[‘POST‘]) def delitem(id): db.delItem(id) #业务代码 #db.data是python列表对象(元素是字典),返回到浏览器后就是js数组(元素是Josn对象 return jsonify({"result":db.data})
举例2:
js代码如下
var id = $("#recordid").val(); var name = $("#recordname").val(); var msg = $("#recordinfo").val(); $.post("/additem", {"id":id,"name":name,"msg":msg}, function(data){ showData(data); },"json");
对应的flask代码如下:
@app.route(‘/additem‘, methods=[‘POST‘]) def additem(): db.addItem(request.form.get(‘id‘),request.form.get(‘name‘),request.form.get(‘msg‘)) return jsonify({"result":db.data})
注意,@app.route 方法中需要指定methods参数为POST
可以看出,在flask中,通过request.form.get 来获取ajax发出的请求。 get方法还可以带第2个参数缺省值,如果指定的参数名不存在,有缺省值的则返回缺省值,没有的话返回None。注意,如果浏览器不是通过ajax发来的post请求,而是通过form提交的,则用request.form[表单元素名]来获取表单元素中的值。
二、处理ajax的get请求
与post请求类似,区别是:
1)@app.route 方法中不需要指定methods参数,因为缺省就是响应get请求
2)获取js发来的参数是用 request.args.get方法
以上是关于Flask web开发 处理Ajax请求的主要内容,如果未能解决你的问题,请参考以下文章