Flask 处理多个错误
Flask handling multiple errors
我有一个用 Flask 制作的简单应用程序。它仅使用 POST 方法。
它需要 2 个数字(在 json 中)并将它们相加。
{"a": 1, "b": 1}
应用程序响应这些数字的总和(也在 json 中)。
{"sum": 2}
代码如下所示:
@appFlask.route('sum', methods=['POST'])
def result():
data = request.get_json()
return jsonify({'sum': data['a'] + data['b']})
我想做错误处理。问题是有很多这样的错误,例如对于以下调用,它们应该 return “400 Bad Request” 或者如果文件不在 json.
{"a":1, "b":1, "c":1}
{"a", "a":1, "b":1}
{}
{"a":1}
{"a":0, "b":1}
我怎样才能用最简单的方式做到这一点?有没有办法在一个函数中做到这一点?
您可以使用捕获错误,然后您可以 return“400 错误请求”和 return 数据示例及其对用户的验证。
@appFlask.route('sum', methods=['POST'])
def result():
try:
data = request.get_json()
# check if a or b is not 0
if data['a'] == 0 or data['b'] == 0:
raise Exception("Error occurred")
return jsonify({'sum': data['a'] + data['b']})
except Exception as e:
return "400 Bad Request"
示例中提到的所有其他调用都会产生将被缓存的错误。
您不必担心 {"a":1, "b":1, "c":1}
,因为它不会影响代码,但如果您认为它是错误的请求,您需要对其进行检查。
您肯定需要根据您的需要进行检查,因为没有内置的功能。
您可以使用 return 语句传递 HTTP 状态代码。
@appFlask.route('/sum', methods=['POST'])
def result():
try:
data = request.get_json()
if len(data.keys()) != 2 and all(data.values()): #
return "Invalid Data", 400
return jsonify({'sum': data['a'] + data['b']}), 200
except Exception as e:
return "Invalid Data", 400
all()
函数 returns True
如果迭代中的所有项的计算结果为真
我有一个用 Flask 制作的简单应用程序。它仅使用 POST 方法。 它需要 2 个数字(在 json 中)并将它们相加。
{"a": 1, "b": 1}
应用程序响应这些数字的总和(也在 json 中)。
{"sum": 2}
代码如下所示:
@appFlask.route('sum', methods=['POST'])
def result():
data = request.get_json()
return jsonify({'sum': data['a'] + data['b']})
我想做错误处理。问题是有很多这样的错误,例如对于以下调用,它们应该 return “400 Bad Request” 或者如果文件不在 json.
{"a":1, "b":1, "c":1}
{"a", "a":1, "b":1}
{}
{"a":1}
{"a":0, "b":1}
我怎样才能用最简单的方式做到这一点?有没有办法在一个函数中做到这一点?
您可以使用捕获错误,然后您可以 return“400 错误请求”和 return 数据示例及其对用户的验证。
@appFlask.route('sum', methods=['POST'])
def result():
try:
data = request.get_json()
# check if a or b is not 0
if data['a'] == 0 or data['b'] == 0:
raise Exception("Error occurred")
return jsonify({'sum': data['a'] + data['b']})
except Exception as e:
return "400 Bad Request"
示例中提到的所有其他调用都会产生将被缓存的错误。
您不必担心 {"a":1, "b":1, "c":1}
,因为它不会影响代码,但如果您认为它是错误的请求,您需要对其进行检查。
您肯定需要根据您的需要进行检查,因为没有内置的功能。
您可以使用 return 语句传递 HTTP 状态代码。
@appFlask.route('/sum', methods=['POST'])
def result():
try:
data = request.get_json()
if len(data.keys()) != 2 and all(data.values()): #
return "Invalid Data", 400
return jsonify({'sum': data['a'] + data['b']}), 200
except Exception as e:
return "Invalid Data", 400
all()
函数 returns True
如果迭代中的所有项的计算结果为真