1. 程式人生 > >【Flask】增加使用者體驗之 abort和@errorhandler裝飾器,自定義錯誤頁面和資訊

【Flask】增加使用者體驗之 abort和@errorhandler裝飾器,自定義錯誤頁面和資訊

一、abort函式

概念:flask中的異常處理語句,功能類似於python中raise語句,只要觸發abort,後面的程式碼不會執行,abort只能丟擲符合http協議的異常狀態碼(不同於return可以返回自定義狀態碼,這裡不做討論)。

應用場景:一般用來實現自定義的錯誤資訊,讓程式碼的擴充套件性更好,提高使用者體驗。

直接上程式碼:

@app.route('/')
def index():
    
    abort(400)
    return 'hello world', 404

在程式碼中,首先abort丟擲了400錯誤,然後我又return了404錯誤,那瀏覽器到底返回多少狀態碼呢?

當然是400,因為只要觸發abort,後面的程式碼就不執行了。

二、errorhandler 裝飾器

errorhandler 裝飾器是配合abort函式使用的,是為了進一步提升使用者體驗,他接收的是abort函式丟擲的異常狀態碼,自定義錯誤頁面和資訊。

from flask import Flask,abort

app = Flask(__name__)

@app.route('/')
def index():
    abort(404)
    return 'hello world'

@app.errorhandler(404)
def err_handler(e):
    return '您訪問的頁面走丟了,請訪問***頁面。'

if __name__ == '__main__':
    app.run(debug=True)

如果沒有errorhandler,返回的頁面:

在errorhandler裝飾後,返回的頁面:

對於一個普通使用者而言,當然第二個頁面友好一些。