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

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM