日常工作当中,算法工程师经常需要编写一些模型,模型编写完成后需要交付给其他工程师调用。常见的实现方式是算法工程师用flask/django/fastapi等框架编写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模型,只需要传输对应的数据即可调用模型。
调用vrp模型后,输出结果。
API编写完成以后,只需要交付给前端工程师,让前端工程师开发用户界面即可。
如果对Flask感兴趣的可以参考中文版的Flask文档介绍,该网站介绍了Flask基本的组件,是使用Flask入门学习极好的教程。
http://docs.jinkan.org/docs/flask/quickstart.html