Flask框架 請求鉤子與request請求物件

2021-08-28 20:25:15 字數 1810 閱讀 4082

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

為了讓每個檢視函式避免編寫重複功能的**,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則是採用請求鉤子的方式來處理。在客戶端和伺服器互動的過程中,有些準備工作或掃尾工作需要處理,比如 在請求開始時,建立資料庫連線 在請求結束時,指定資料的互動格式。為了讓每個檢視函式避免編寫重複功能的...