在客戶端和伺服器互動的過程中,有些準備工作或掃尾工作需要處理,比如:
為了讓每個檢視函式避免編寫重複功能的**,flask提供了通用設施的功能,即請求鉤子。
請求鉤子是通過裝飾器的形式實現,flask支援如下四種請求鉤子:
請求鉤子
描述before_first_request
在處理第乙個請求前執行
before_request
在處理每乙個請求前執行
after_request
如果沒有丟擲錯誤,則在每一次請求後執行(接受乙個引數:檢視函式做出的響應)
teardown_request
在每次請求後執行(接受乙個引數:用來接受錯誤資訊)
例:
from flask import flask
# 在第一次請求之前呼叫,可以在此方法內部做一些初始化操作
def before_first_request():
print("before_first_request")
# 在每次請求之前呼叫,這時候已經有請求了,可能在這個方法裡面做請求的校驗
# 如果請求的校驗不成功,可以直接在此方法中進行響應,直接return之後那麼就不會執行檢視函式
def before_request():
print("before_request")
# if 請求不符合條件:
# return "laowang"
# 在執行完檢視函式之後會呼叫,並且會把檢視函式所生成的響應傳入,可以在此方法中對響應做最後一步統一的處理
def after_request(response):
print("after_request")
return response
# 請每一次請求之後都會呼叫,會接受乙個引數,引數是伺服器出現的錯誤資訊
def teardown_request(e):
print("teardown_request")
def index():
return 'index'
if __name__ == '__main__':
第一次訪問列印結果:
第二次訪問列印結果:
屬性說明
型別data
記錄請求的資料,並轉換為字串
*form
記錄請求中的表單資料
multidict
args
記錄請求中的查詢引數
multidict
cookies
記錄請求中的cookie資訊
dict
headers
記錄請求中的報文頭
environheaders
method
記錄請求使用的http方法
get/post…
url記錄請求的url位址
string
files
記錄請求上傳的檔案
*獲取request物件:
例:
request.url # 請求的url位址
request.args.get("password")) # 獲取不到,返回none,
request.args.get("password","aaa")) # 獲取不到,返回aaa
Flask 請求鉤子
flask中具有四種鉤子被做成了修飾器,我們在後端可以進行呼叫做相關的操作.功能 defindex print 哈哈哈哈 return 哈哈哈 defbefore first request print 這是第乙個鉤子,只在第乙個請求之前呼叫,第乙個請求之後不再呼叫 效果 注意點 在每次請求的之前呼...
Flask 請求鉤子
首先了解下flask設計請求鉤子的作用是什麼,其實請求鉤子就是為了讓每個檢視函式避免編寫重複功能的 設施的功能。其實和scrapy,django中的中介軟體有點相似之處。請求鉤子的設計能夠很有效的提高 的質量,以及實現一些很好的應用場景。falsk有以下幾種鉤子 在處理第乙個請求前執行.應用場景 比...
Flask 請求鉤子
在django中有中介軟體這個類來做一些檢視執行前 執行中 執行後的一些額外業務處理,那麼在flask則是採用請求鉤子的方式來處理。在客戶端和伺服器互動的過程中,有些準備工作或掃尾工作需要處理,比如 在請求開始時,建立資料庫連線 在請求結束時,指定資料的互動格式。為了讓每個檢視函式避免編寫重複功能的...