在工作当中,算法工程师经常需要快速编写一些演示demo,例如快速演示一些算法,或者需要编写数据标注的工具等。常见的实现方式是算法工程师用flask/django等框架编写API,再由前端工程师编写相关的网页或系统调用api。
Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。
本文介绍flask编写API的步骤,及调用API的基本方法。
API 编写
写一函数/模型。这里写一个简单的函数,当然也可以写复杂模型。其调用原理使用一样的。
#写一个简单的函数 def f_sum(data): return data["x"]+data['y']
搭建flask调用框架,这里先把调用的框架建立起来,暂时采用post方式传输数据。
from flask import Flask,jsonify,request app = Flask(__name__) @app.route("/f",methods=['POST'])#装饰器,以POST方式传输 #app.config['JSON_AS_ASCII'] = False#显示中文 def me_api(): res = request.get_json() #传输数据后,调用函数 answer=f_sum(res) return jsonify(answer)#jsonify转成json格式 if __name__ == '__main__': app.run()
运行该程序即可,当然可以部署至服务器上。
调用测试
这里用常用的postman调用测试。
能正常调用。
当然实际业务中,模型比这复杂很多。之前我写过一个路径优化的vrp模型,已通过Flask框架编写成API,只需要传输对应的数据即可调用模型。
调用vrp模型后,输出结果。
API编写完成以后,只需要交付给前端工程师,让前端工程师开发用户界面即可。
如果对Flask感兴趣的可以参考中文版的Flask文档介绍,该网站介绍了Flask基本的组件,是使用Flask入门学习极好的教程。
http://docs.jinkan.org/docs/flask/quickstart.html