首页 > 解决方案 > 邮递员第二次向 Flask 发送发布请求时卡住了

问题描述

我正在创建一个应用程序,我必须从 Flask 中的 POST 调用中读取图像。我正在使用此问题中提供的说明来设置 Postman。我的 Flask 代码如下所示:

from flask import Flask, request, session
import cv2

# Initialize the Flask application
app = Flask(__name__)

@app.route('/predict', methods=['POST'])
def predict():
    r = request
    # convert string of image data to uint8
    # decode image
    imagefile = request.files.get('imagefile', '')
    imagefile.save('temp.jpg')
    img = cv2.imread('temp.jpg')
    cv2.imshow("img", img)
    cv2.waitKey()
    cv2.destroyAllWindows()
    return ("SUCCESS")
    
if __name__ == '__main__':
    app.run(debug=True, port=5000)

该程序在第一次调用它时运行良好并正确显示图像,但是当我尝试再次调用它而不重新运行 python 代码时,它在发送请求时卡住了。请让我知道我做错了什么以及如何纠正它。我将 Ubuntu 18.04 与适用于 Linux 的 Postman 应用程序一起使用。

编辑

正如@ MaxTryk所建议的那样,我尝试添加断点来找到罪魁祸首,它是图像显示部分。

cv2.imshow("img", img)
cv2.waitKey()
cv2.destroyAllWindows()

但是,我仍然不知道为什么这些语句会导致第二个请求挂起,所以如果您知道任何更正它的方法,请告诉我。

标签: pythonopencvflaskpostman

解决方案


如果重新运行 python 代码可以解决问题,那么问题一定是代码,而不是 Postman - 我建议通过放置断点来调试以查看执行挂起的位置。


推荐阅读