Python 在烧瓶中返回响应

Python 在烧瓶中返回响应,python,flask,Python,Flask,我有这样的代码 def find_user(user_id): if not users.lookup(user_id): return jsonify(success=False, reason="not found") else: return users.lookup(user_id) @app.route(...) def view1(...): user = find_user(...) if user:

我有这样的代码

def find_user(user_id):
    if not users.lookup(user_id):
        return jsonify(success=False, reason="not found")
    else:
        return users.lookup(user_id)

@app.route(...)
def view1(...):
    user = find_user(...)
    if user:
       do_something
    return jsonify(success=True, ....)
关键是我有一个helper函数,如果满足
条件
,我希望立即返回响应。在这种情况下,如果找不到用户,我想返回一个请求,说明请求失败并给出原因

问题在于函数还可以返回一些其他值(例如用户对象)。 我不会从请求中返回。相反,因为我们得到了一个赋值,所以我们将继续处理代码路径的其余部分

我可能会做一个类型检查,但那太难看了

理想情况下,这是较长的代码

def view(...)
    user = users.lookup(user_id)
    if not user:
       return jsonify(success=False....)
    # if user is true, do something else
helper函数
find_user
的全部要点是提取常见代码,然后在其他一些类似的API中重用


有没有一种方法可以直接在我当前的代码中返回响应?看来这是个死胡同。。。除非我更改代码的编写方式(返回值的方式…

否则您应该在
find\u user
中引发异常,然后添加一个处理程序,返回该异常的正确响应。例如:

使用此示例,在
find_user
函数中,您可以执行以下操作:

raise InvalidUsage('User not found', status_code=404)
根据答案,你也可以

return jsonify(success=False....), 400
返回状态代码400

return jsonify(success=False....), 400