python flask框架实现传数据到js的方法分析
本文实例讲述了pythonflask框架实现传数据到js的方法。分享给大家供大家参考,具体如下:
首先要清楚后台和前端交互所采用的数据格式。
一般选JSON,因为和js完美贴合。
后台返回的数据进行序列化
在/homepageRecommend路由的view方法中返回序列化数据
dict={"a":1,"b":2}importjson json.dumps(dict)
2)
fromflaskimportjsonify jsonify(dict)#在调用jsonfiy有时会报错,原因是jsonify对象必须是dict
这两种序列化方式主要的区别是jsonify格式更美观一些
在前端利用jquary对json进行反序列化
$.getJSON('/homepageRecommend' ,function(data){//从Flask返回的数据 alert(data.a)//浏览器弹窗显示后端返回的dict["a"]的值,此次是1 } ) //getJSON函数有三个参数 //第一个是后端返回的数据的url //第二个是要返回给服务器的data是可选的 //第三个是对获取的反序列化数据要继续进行的操作的函数
前端通过.get()或者.get()或者.post()方法发送请求,后端利用json.dumps(dict)返回json数据,在js中利用eval()方法,把json数据转换为js对象,后再做其他处理
$.post("{{url_for('statistics.HomeRecommend')}}",{"id":a},function(reco_list){ varreco_list=eval(reco_list) //doothers })
最近在使用icharts画图的过程中发现了另外一种传数据的方式,view中使用
returnrender_template('statistics/numberofuserlogin/login_number.html',result_json=json.dumps(result))
js中直接用js_object=eval('{{result_json|safe}}')注意一定要加|safe过滤否则会对字符串进行转义导致解析错误使用这种方式传数据,能够在渲染模板的同时传数据,避免定义新的url拿数据
总结:flask后台给前端js传数据,需要注意序列化和反序列化
更多资料参考https://www.nhooo.com/article/162815.htm
希望本文所述对大家基于Flask框架的Python程序设计有所帮助。