鍍金池/ 問答/Python  網(wǎng)絡(luò)安全/ Flask在回調(diào)中返回Response

Flask在回調(diào)中返回Response

我有一個回調(diào)函數(shù),希望使用Flask封裝一下,以便HTTP調(diào)用,代碼如下:

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)
    

當(dāng)運行的時候,會報錯ValueError: View function did not return a response,這個倒是正常的,lib.startComparedFace運行后,沒有發(fā)現(xiàn)return進行回復(fù)

我想知道,在flask中,如何讓我在調(diào)用的回調(diào)函數(shù)中返回response,而不是立即返回。謝謝

回答
編輯回答
幼梔

after_request了解一下

2017年11月7日 06:26