Flask 請求鉤子(七)

2022-05-12 14:14:06 字數 2669 閱讀 9074

在客戶端和伺服器互動的過程中,有些準備工作或掃尾工作需要處理,比如:

為了讓每個檢視函式避免編寫重複功能的**,flask提供了通用功能,即請求鉤子。

請求鉤子是通過裝飾器的形式實現,flask支援如下四種請求鉤子:

功能:作用:

注意:

#

被該裝飾器裝飾的函式會在第一次請求之前呼叫。

#強調:第一次不是指使用者第一次發起請求,而是伺服器第一次接收到請求。

#作用:可以在此方法內部做一些初始化操作,比如連線資料庫

defbefore_first_request():

print("

before_first_request 被執行

")

功能:作用:

注意點:

#

被該裝飾裝飾的函式會在每一次請求之前呼叫

#作用:可以在這個請求中做一些請求校驗,如果請求的校驗不成功,直接return之後那麼就不會執行檢視函式

defbefore_request():

print("

before_request 被執行

")

功能:作用:

#

被該裝飾器裝飾的函式會在檢視被成功執行完之後呼叫,並且會把檢視函式return的資料當做引數傳入

#作用:可以在此方法中對響應做最後一步統一的處理,比如修改headers資訊

defafter_request(resp):

print("

after_request 被執行")

resp.headers[

"content-type

"] = "

"return resp

功能:作用:

#

被該裝飾器裝飾的函式無論每一次請求是否成功都會呼叫

#會接受乙個引數,若檢視執行出錯,引數是伺服器出現的錯誤資訊,反之,為none

#作用:可以用來收集錯誤

defteardown_request(error):

print("

teardown_request 被執行")

iferror:

print(f"

錯誤url:,錯誤原因:")

執行結果圖:

根據執行結果, 可以得出鉤子函式在一次請求中的執行順序, 如下圖:

附碼:from flask import

flask, request

def)

#被該裝飾器裝飾的函式會在第一次請求之前呼叫。

#強調:第一次不是指使用者第一次發起請求,而是伺服器第一次接收到請求。

#作用:可以在此方法內部做一些初始化操作,比如連線資料庫

defbefore_first_request():

print("

before_first_request 被執行")

#被該裝飾裝飾的函式會在每一次請求之前呼叫

#作用:可以在這個請求中做一些請求校驗,如果請求的校驗不成功,直接return之後那麼就不會執行檢視函式

defbefore_request():

print("

before_request 被執行")

#被該裝飾器裝飾的函式會在檢視被成功執行完之後呼叫,並且會把檢視函式return的資料當做引數傳入

#作用:可以在此方法中對響應做最後一步統一的處理,比如修改headers資訊

defafter_request(resp):

print("

after_request 被執行")

resp.headers[

"content-type

"] = "

"return

resp

#被該裝飾器裝飾的函式無論每一次請求是否成功都會呼叫

#會接受乙個引數,若檢視執行出錯,引數是伺服器出現的錯誤資訊,反之,為none

#作用:可以用來收集錯誤

defteardown_request(error):

print("

teardown_request 被執行")

iferror:

print(f"

錯誤url:,錯誤原因:")

檢視函式檔案#"

/login/")

deflogin():

print("

login檢視被執行")

return

"登入成功""

/create/")

defcreate():

print("

create檢視被執行")

return

"建立成功""

/error/")

deferror():

print("

error檢視被執行")

a = 1/0

return"ok

"if__name__ == '

__main__

':

參考:

Flask 請求鉤子

flask中具有四種鉤子被做成了修飾器,我們在後端可以進行呼叫做相關的操作.功能 defindex print 哈哈哈哈 return 哈哈哈 defbefore first request print 這是第乙個鉤子,只在第乙個請求之前呼叫,第乙個請求之後不再呼叫 效果 注意點 在每次請求的之前呼...

Flask 請求鉤子

首先了解下flask設計請求鉤子的作用是什麼,其實請求鉤子就是為了讓每個檢視函式避免編寫重複功能的 設施的功能。其實和scrapy,django中的中介軟體有點相似之處。請求鉤子的設計能夠很有效的提高 的質量,以及實現一些很好的應用場景。falsk有以下幾種鉤子 在處理第乙個請求前執行.應用場景 比...

Flask 請求鉤子

在django中有中介軟體這個類來做一些檢視執行前 執行中 執行後的一些額外業務處理,那麼在flask則是採用請求鉤子的方式來處理。在客戶端和伺服器互動的過程中,有些準備工作或掃尾工作需要處理,比如 在請求開始時,建立資料庫連線 在請求結束時,指定資料的互動格式。為了讓每個檢視函式避免編寫重複功能的...