您好,登錄后才能下訂單哦!
這篇“Flask中的特殊裝飾器如何使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Flask中的特殊裝飾器如何使用”文章吧。
請求到達視圖函數之前,進行自定義操作,類似django中間件中的process_request,在app中使用則為全局,在藍圖中使用則針對當前藍圖
注意正常狀態下return值必須為None
響應返回到達客戶端之前,進行自定義操作,類似jango中間件中的process_response,在app中使用則為全局,在藍圖中使用則針對當前藍圖
注意正常狀態下視圖函數必須定義一個形參接收response對象,并通過return response返回
錯誤狀態碼捕獲執行函數,裝飾器參數務必是4xx或者5xx的int型錯誤狀態碼
@app.template_filter(): 定義裝飾全局模板可用的過濾器函數,類似django中的自定義過濾器,直接可在模板中使用
這兩個特殊裝飾器主要用在模板渲染!!!
import apps from flask import request, session, redirect app = apps.create_app() @app.before_request def before1(): print("before1", request) @app.before_request def before2(): print("before2") if request.path == "/": return None else: #這里拋出了一個異常,會被@app.errorhandler(Exception) # 捕獲到。 raise Exception("hahaha") @app.before_request def before3(): print("before3") @app.after_request def after1(res): print("after1") return res @app.after_request def after2(res): print("after2") return res @app.after_request def after3(res): print("after3") return res # 處理異常,接受參數,可以重定向到指定頁面 @app.errorhandler(Exception) def error(e): print("error") return redirect("/") @app.route("/login") def login(): print("login") return "login" @app.route('/') def hello_world(): # put application's code here return 'Hello World!' if __name__ == '__main__': app.run()
以上就是關于“Flask中的特殊裝飾器如何使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。