Flask中獲取GET和POST請求引數的方法
近日在做專案的時候需要通過flask獲取前端傳過來的引數
對GET
和POST
兩種請求方式的引數獲取方式進行梳理。
request
物件是從客戶端向伺服器發出請求,包括使用者提交的資訊以及客戶端的一些資訊。
客戶端可通過HTML表單或在網頁地址後面提供引數的方法提交資料,然後通過request
物件的相關方法來獲取這些資料。
request
請求總體分為兩類:
-
get
請求GET
把引數包含在URL
中,訪問時會在位址列直接顯示引數不安全,且引數大小比較小 -
post
請求
引數通過request body
傳遞
常見的方式
falsk獲取引數的方式
request.form.get("key", type=str, default=None) request.args.get("key") # 獲取get請求引數 request.values.get("key") # 獲取所有引數
這三種方法基本可以滿足大部分的請求
GET
請求方式獲取引數
當採用GET
請求方式時,引數直接顯示在請求連線中,可以使用兩種獲取引數的方式:
request.args.get('key')
request.values.get('key')
@app.route('/index', methods=["GET"]) def hello_world(): # put application's code here if request.method == "GET": content = request.args.get("key") content = request.values.get("key")
POST
請求方式獲取引數
客戶端在傳送post
請求時,資料可以使用不同的Content-Type
來發送。
比如:
以 application/json 的方式 ,請求body體的內容就是{"a": "b", "c": "d"}
以 application/x-www-form-urlencoded 的方式,則body體的內容就是 a=b&c=d
在Postman軟體中,可以方便的檢視引數是以什麼形式傳送的,對應的Content-Type是什麼。
Body中選擇“raw”,則對應的Headers中的“Content-Type”是“application/json”,引數形式是{"content":"很好"}
Body中選擇“x-www-form-urlencoded”,則對應的Headers中的“Content-Type”是“application/x-www-form-urlencoded”,引數形式是Key-Value形式。
Body中選擇“form-data”, 則對應的Headers中的“Content-Type”是“multipart/form-data”,引數形式是Key-Value。
具體位置如下圖:
POST
請求不同Content-Type
的處理方式
Content-Type
為 application/json
,獲取json
引數
獲取的是序列化後的引數,一般情況下滿足使用,不需要json.loads()
來序列化。
打印出結果就是json
串,如{'name':'lucy', 'age':22}
Content-Type
為 application/json
,獲取json原始引數
request.get_data()
獲取的原始引數,接受的是type是'bytes
’的物件,如:b{'name':'lucy', 'age':22}
Content-Type
為application/x-www-form-urlencoded
Content-Type
為multipart/form-data
,獲取表單引數
可以使用request.form.get('content')
或者 request.form['content']
來獲取引數
程式碼示例
轉自:https://blog.csdn.net/ling620/article/details/107562294