Flask引數解析 請求鉤子

2022-08-14 21:09:07 字數 2460 閱讀 1946

引數解析

flask的引數解析主要用request完成(from flask import request)。

request的api詳解見官方文件

request的使用詳解見官方文件

此處主要介紹一些常用的引數解析相關的內容。

request中的幾個重要變數:

request.data 字串型別 存放請求的字串資料,未經處理

request.files multidict型別 存放所有的上傳檔案列表

request.form immutablemultidict型別 存放表單資料

request.is_json 函式 判斷資料是否為json資料

request.is_multiprocess 函式 判斷此應用是否為多程序wsgi服務

request.is_multithread 函式 判斷此應用是否為多執行緒wsgi服務

request.json dict型別 存放json型別的資料

request.view_args dict型別 存放url中定義的變數 比如/login/,會存放

request.args immutablemultidict型別 存放url中?後面的變數

request.values combinedmultidict型別 是args和form的組合

拿常用的get、post、put、delete方法舉例。

get方法:

變數名不重複型:/login?username=cxp&password=cxp 

username = request.args.get('

username

', ''

)password = request.args.get('

password

', '')

變數名重複型:/login?username=cxp&password=cxp&password=cpp

params =dict()

for i, j in

request.args.iterlists():

params[i] =j

print params #

request.data/request.form/request.json無資料,request.args和request.values存放資料。

post、put、detelte方法:

form-data型:/login

username = request.form.get('

username

', ''

)password = request.form.get('

password

', '')

request.data/request.args/request.json都為空,僅request.form和request.values有資料。

json型:/login

args =request.json

或者args = request.get_json()

request.args/request.form/request.values為空,request.data為裸資料,request.json有字典資料。

其實準確的說不應該用http方法來做分類。如果是url中直接帶引數的方式,介面中都可以用request.args變數去獲取引數。如果是form-data的型別,則可以用request.form變數去獲取引數。如果是json型別,則用request.json去獲取引數。另外因為flask可能會用wtforms來做表單驗證,建議介面中的key為固定值而非變數,否則做表單驗證時會比較不方便。

鉤子函式

before_request() 註冊乙個函式,在每個請求之前執行。通常用於資料庫的連線或者從session中獲取資訊等操作。

defbf_request():

g.string = '

before_request

'before_first_request() 註冊乙個函式,在處理第乙個請求之前執行。通用用於僅需執行一次的操作,而且需要第一次請求來觸發。

defbf_first_request():

g.string = '

before_first_request

'after_request()  註冊乙個函式,在每次請求之後執行。註冊的函式至少需要含有乙個引數,這個引數實際上為伺服器的響應,且函式中需要返回這個響應引數。

defaf_request(param):

return param

teardown_request()    註冊乙個函式,同樣在每次請求之後執行。註冊的函式至少需要含有乙個引數,這個引數實際上為伺服器的響應,且函式中需要返回這個響應引數。

deftd_request(param):

return param

Flask 請求鉤子

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

Flask 請求鉤子

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

Flask 請求鉤子

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