您好,欢迎访问一九零五行业门户网

希望用flask作为中介让python和js交互,大家有什么比较好的实践经验没?

我试过了getjson之类的是可以的但是比较怀疑数据量大的话用什么比较好啊?记得见过有人是pandas+d3.js+flask用的,不过找不到了
回复内容:无邀自答,只因为在我主页的信息流里面多看了你一眼。。。。这话题选得各种切中我的要害啊。
我是勤劳的搬运工。
getting your python data onto browser介绍了如何将你的python数据弄到浏览器里面。所以其实json才是python和js的中介,flask框架只是帮你简单的建立一个json服务器而已,连restfull都谈不上,如果你只是用来可视化的话。当然你也可以实现增修改删的restful服务。同理,你也可以用tornado,也许它的性能更好。
我假定是一个动态的服务,那么panda的dataframe可以帮你快速地处理数据,playing with realtime data, python and d3和data visualization using d3.js and flask都有介绍相关的细节。
功能实现后,你所关心的可能是性能问题。我觉得大多数还不太会需要这方面的担忧。最烦人的可能是开发和可维护性。当然如果关心性能,你也可以在你功能完善的情况下,考虑服务器的优化,引入cache服务,服务器平衡等等,我觉得这不是你关心的。
此外,强烈推荐数据可视化控,可以试试ipython notebook. 这篇visualizing a networkx graph in the ipython notebook with d3.js可能会让你强烈地喜欢上ipython notebook.
新手的个人经验:
比如现在我们要将一个数据从javascript传输到flask, 进行处理后再传回javascript. 我们可以使用jquery中的getjson, 并将数据转化为string后进行传输.
javascript + jquery:
mydata = {msg, hello flask.}; // 要传输的数据$.getjson('/dataconvector', { // flask中获取数据的function的url mykey: json.stringify(mydata) // 定义一个keyword, 将数据stringify }, function(data) { // 从flask返回的数据 console.log(data.result); $( #result ).text(data.result); });
websocket啊
另外推荐神器 github - brython-dev/brython: brython (browser python) is an implementation of python 3 running in the browser
bottle-websocketflask-socketio, 相当简单易用
https://flask-socketio.readthedocs.org/en/latest/入门上手的话推荐看这本:
data visualization with python and javascript - o'reilly media推荐一个github上面的开源项目,caravel(github - airbnb/caravel: caravel is a data exploration platform designed to be visual, intuitive, and interactive),我正在学习和研究它在flask这个包里有jsonify这个方法,可以return这个方法的返回值,在js那边接受为json。
除此之外,还可以使用jinja过滤器,在html上将字典转化为js可以读取的格式。字符串就不必了。
参考我的博客
http://www.cnblogs.com/lewis617/p/5184621.html用flask搭建一个restful服务,以json作为数据接口,这样前台就能获取后台的数据。tornado + websocket 也是一个选择,格式 json 比较方便。
其它类似信息

推荐信息