1. 程式人生 > 其它 >Flask中獲取GET和POST請求引數的方法

Flask中獲取GET和POST請求引數的方法

近日在做專案的時候需要通過flask獲取前端傳過來的引數

對GETPOST兩種請求方式的引數獲取方式進行梳理。

request物件是從客戶端向伺服器發出請求,包括使用者提交的資訊以及客戶端的一些資訊。

客戶端可通過HTML表單或在網頁地址後面提供引數的方法提交資料,然後通過request物件的相關方法來獲取這些資料。

request請求總體分為兩類:

    1. get請求
      GET把引數包含在URL中,訪問時會在位址列直接顯示引數不安全,且引數大小比較小

    2. 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-Typeapplication/x-www-form-urlencoded

 

 Content-Typemultipart/form-data ,獲取表單引數

可以使用request.form.get('content') 或者 request.form['content']來獲取引數

 

 

程式碼示例

 

 

 

 

 轉自:https://blog.csdn.net/ling620/article/details/107562294