Flask 請求鉤子

2021-10-01 10:10:09 字數 1679 閱讀 5124

在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 每次請求之後呼叫,前提是沒有未處理的異常...