Flask在回调中返回Response

我有一个回调函数,希望使用Flask封装一下,以便HTTP调用,代码如下:

lib= c.CDLL('comparedFace.dll')
CALLBACKFUNC = c.CFUNCTYPE(None, c.c_int, c.c_char_p)
lib.startComparedFace.restype = c.c_int 
lib.startComparedFace.argtypes = (c.c_char_p, c.c_char_p, CALLBACKFUNC)


@app.route('/compare', methods=['GET', 'POST'])
def test():
    if request.method == 'POST':

        request_json = request.get_json()
        print(request_json)
        number       = request_json.get('number')
        image01      = request_json.get('image01')
        image02      = request_json.get('image02')
        print(image01)
        print(image02)


        @c.CFUNCTYPE(None, c.c_int, c.c_char_p)
        @copy_current_request_context
        def callback(status, result_string):

            result_json = json.loads(result_string)
            distance = result_json['compareResult']

            resp_data = {
                "number": number, 
                "distance": distance,
            }
            print(resp_data)
            response = Response(
                response=json.dumps(resp_data),
                status=200,
                mimetype='application/json'
            )
            return response


    lib.startComparedFace(b'd:/1.jpg', b'd:/2.jpg', callback)
    

当运行的时候,会报错ValueError: View function did not return a response,这个倒是正常的,lib.startComparedFace运行后,没有发现return进行回复

我想知道,在flask中,如何让我在调用的回调函数中返回response,而不是立即返回。谢谢

阅读 6.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题