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