在django中有中介軟體這個類來做一些檢視執行前、執行中、執行後的一些額外業務處理,那麼在flask則是採用請求鉤子的方式來處理。
在客戶端和伺服器互動的過程中,有些準備工作或掃尾工作需要處理,比如:在請求開始時,建立資料庫連線;在請求結束時,指定資料的互動格式。為了讓每個檢視函式避免編寫重複功能的**,flask提供了通用設施的功能,即請求鉤子。
請求鉤子是通過裝飾器的形式實現,flask支援如下四種請求鉤子:
from flask import flask, request, url_for
def index():
print("index 被執行")
a = 1 / 0 # 執行出現異常
return "index page"
def hello():
print("hello 被執行")
return "hello page"
def handle_before_first_request():
"""在第一次請求處理之前先被執行"""
print("handle_before_first_request 被執行")
def handle_before_request():
"""在每次請求之前都被執行"""
print("handle_before_request 被執行")
def handle_after_request(response):
"""在每次請求(檢視函式處理)之後都被執行, 前提是檢視函式沒有出現異常"""
print("handle_after_request 被執行")
return response
def handle_teardown_request(response):
"""在每次請求 (檢視函式處理)之後都被執行, 無論檢視函式是否出現異常,都被執行, 工作在非除錯模式時 debug=false"""
path = request.path
if path == url_for("index"):
print("在請求鉤子中判斷請求的檢視邏輯: index")
elif path == url_for("hello"):
print("在請求鉤子中判斷請求的檢視邏輯: hello")
print("handle_teardown_request 被執行")
檢視後台列印的資訊,如下:
可以看到儘管出現了異常,teardown_request的鉤子也會照常執行。
Flask 請求鉤子
flask中具有四種鉤子被做成了修飾器,我們在後端可以進行呼叫做相關的操作.功能 defindex print 哈哈哈哈 return 哈哈哈 defbefore first request print 這是第乙個鉤子,只在第乙個請求之前呼叫,第乙個請求之後不再呼叫 效果 注意點 在每次請求的之前呼...
Flask 請求鉤子
首先了解下flask設計請求鉤子的作用是什麼,其實請求鉤子就是為了讓每個檢視函式避免編寫重複功能的 設施的功能。其實和scrapy,django中的中介軟體有點相似之處。請求鉤子的設計能夠很有效的提高 的質量,以及實現一些很好的應用場景。falsk有以下幾種鉤子 在處理第乙個請求前執行.應用場景 比...
Flask之請求鉤子
什麼是請求鉤子?說白了,就是在執行檢視函式前後你可以進行一些處理,flask使用裝飾器為我們提供了註冊通用函式的功能。before first request 在處理第乙個請求前執行 before request 在每次請求前執行 after request 每次請求之後呼叫,前提是沒有未處理的異常...