1.GET请求
GET请求把参数包含在url里,GET是获取数据的
2.POST请求
POST请求通过request body传递参数,用于修改服务器上的数据
3.flask部署模型api
图例中以cv的demo为例介绍,传入的参数为一个图片,也就是request.files,但是request.files传入的文件参数,不能直接被深度学习模型使用需要转换。
这里实例用到模型是yolov5,通过torch在github下载获取
3.1加载模型
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True)
3.2部署模型api
from flask import Flask,request,jsonify
app=Flask(__name__)
@app.route('/predict',methods=["GET","POST"])
def predict():
if not request.method == "POST":
return
if request.files.get("image"):
image_file = request.files["image"]
print(image_file)
image_bytes = image_file.read()
img = Image.open(io.BytesIO(image_bytes))
results=model(img)
return jsonify(results)
3.3运行api接口
app.run(host="127.0.0.1",port=5005)
3.4模拟客户端请求request模型
curl -X POST -F image=@1.jpg http://127.0.0.1:5005/predict
详细的curl命令可以参考下面这个链接
curl 的用法指南 - 阮一峰的网络日志