Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python RESTfulWeb服务错误处理_Python_Exception Handling_Flask_Sqlalchemy - Fatal编程技术网

Python RESTfulWeb服务错误处理

Python RESTfulWeb服务错误处理,python,exception-handling,flask,sqlalchemy,Python,Exception Handling,Flask,Sqlalchemy,在我的API中,创建新用户时,我调用了许多函数: userInfo = request.get_json() email = userInfo.get('email') password = userInfo.get('password') validate_email(email) validate_password(password) if (no_errors): add_user_to_database(user) e

在我的API中,创建新用户时,我调用了许多函数:

userInfo = request.get_json()           
email = userInfo.get('email')       
password = userInfo.get('password')
validate_email(email)       
validate_password(password)     

if (no_errors):
    add_user_to_database(user)
else:
    return exception(?)
我的目标是收集前3个函数调用中任何一个的结果产生的所有错误。一个函数可能捕获多个错误

例如:

在存储了所有错误之后,我希望返回一个异常,显示所拾取的所有错误

我不知道最好的方法是什么

1我是否应该创建一个自定义错误类的单个对象来传递给所有函数以存储任何错误

2如果发现错误,我应该向用户返回什么?这会是一个自定义异常,HTTP状态代码也包含JSON格式的所有错误吗


我很难找到正确的方法来解决这个问题。

对于flask,我喜欢使用jsonify库,然后我用以下方式格式化错误:

from flask import jsonify

def jsonifys(status_code=200, **kwargs):
    response = jsonify(**kwargs)
    response.status_code = status_code
    return response
然后,我将从我的方法中提出错误,并在我的回答中返回如下结果:

return jsonifys(500, error='unable to create process')

因此,任何前端都可以轻松读取错误代码,并且消息可以提供所需的任何信息。JSON格式也很方便。

我倾向于使用继承Exception的自定义错误类来存储所有收集的错误,您的验证调用可以捕获此错误,读取错误列表并返回@lapinkoira提到的JSON。
return jsonifys(500, error='unable to create process')