我有一个回调函数,希望使用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,而不是立即返回。谢谢
after_request了解一下