我有一個用 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']})
我想做錯誤處理。問題是這些錯誤很多,例如對于以下呼叫,它們應該回傳“400 Bad Request”或者檔案不在 json 中。
{"a":1, "b":1, "c":1}
{"a", "a":1, "b":1}
{}
{"a":1}
{"a":0, "b":1}
我怎樣才能以最簡單的方式制作它?有沒有辦法在一個函式中做到這一點?
uj5u.com熱心網友回復:
您可以使用捕獲錯誤,然后您可以回傳“400 Bad Request”并回傳一個資料示例并將其驗證給用戶。
@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}因為它不會影響代碼,但如果您想將其視為錯誤請求,則需要對其進行檢查。
您肯定需要根據需要進行檢查,因為沒有內置功能。
uj5u.com熱心網友回復:
您可以將 HTTP 狀態代碼與您的 return 陳述句一起傳遞。
@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
如果可迭代項中的所有項的計算結果為 true,則該all()函式回傳True
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/482463.html
上一篇:為什么當我在url(Flask)末尾添加“/”時網站會出現404?
下一篇:如何使用燒瓶制作錯誤處理程式
