溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

flask接受不同post請求的方法

發(fā)布時間:2020-08-06 11:00:10 來源:億速云 閱讀:200 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)flask接受不同post請求的方法的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

一般來說,傳遞請求參數(shù)的方式有兩種,一是打包成 JSON 之后再傳遞,二是直接放進 URL 進行傳遞 。對于第一種方式,一般用 POST 請求來傳遞參數(shù),然后用 FLASK 中 request 模塊的 get_json() 方法獲取參數(shù)。而對于第二種方式,一般用 GET 請求傳遞參數(shù),然后從 request.args 中用 get() 方法獲取參數(shù),不過需要說明的是用 POST 請求也可以通過 URL 的方式傳遞參數(shù),而且獲取參數(shù)的方式與 GET 請求相同。下面用代碼來說明獲取參數(shù)的過程。

1. 獲取 POST 請求參數(shù)

from flask import request, jsonify

@app.route('/', methods = ["POST"])
def post_data():
	# 假設(shè)有如下 JSON 數(shù)據(jù)
    #{"obj": [{"name":"John","age":"20"}] }
    
    # 方法一
    data = request.get_json()                # 獲取 JSON 數(shù)據(jù)
    data = pd.DataFrame(data["obj"])   # 獲取參數(shù)并轉(zhuǎn)變?yōu)?nbsp;DataFrame 結(jié)構(gòu)
    
    # 方法二
    # data = request.json        # 獲取 JOSN 數(shù)據(jù)
    # data = data.get('obj')     #  以字典形式獲取參數(shù)
    
    # 經(jīng)過處理之后得到要傳回的數(shù)據(jù)
    res = some_function(data)
    
    # 將 DataFrame  數(shù)據(jù)再次打包為 JSON 并傳回
    # 方法一
    res = '{{"obj": {} }}'.format(res.to_json(orient = "records", force_ascii = False))
    # 方法二
    # res = jsonify({"obj":res.to_json(orient = "records", force_ascii = False)})
    return res

2. 獲取 GET 請求參數(shù)

@app.route('/', methods = ["GET","POST"])   # GET 和 POST 都可以
def get_data():
    # 假設(shè)有如下 URL
    # http://10.8.54.48:5000/index?name=john&age=20

    #可以通過 request 的 args 屬性來獲取參數(shù)
    name = request.args.get("name")
    age = request.args.get("startDate")
    
    # 經(jīng)過處理之后得到要傳回的數(shù)據(jù)
    res= some_function(name, age)
    
    # 將數(shù)據(jù)再次打包為 JSON 并傳回
    resp = '{{"obj": {} }}'.format(res.to_json(orient = "records", force_ascii = False))
    
    return resp

感謝各位的閱讀!關(guān)于flask接受不同post請求的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI