国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用Flask.Request的方法和屬性,獲取get和post請(qǐng)求參數(shù)(二)

這篇具有很好參考價(jià)值的文章主要介紹了使用Flask.Request的方法和屬性,獲取get和post請(qǐng)求參數(shù)(二)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、Flask中的request

在Python發(fā)送Post、Get等請(qǐng)求時(shí),我們使用到requests庫。Flask中有一個(gè)request庫,有其特有的一些方法和屬性,注意跟requests不是同一個(gè)。

2、Post請(qǐng)求:request.get_data()

用于服務(wù)端獲取客戶端請(qǐng)求數(shù)據(jù)。注意:是未經(jīng)任何處理的原始數(shù)據(jù)而不管內(nèi)容類型,如果數(shù)據(jù)時(shí)json的,則取得是json字符串,排序和請(qǐng)求參數(shù)一致。

2.1 Flask代碼

不同方法的示例僅需要更換視圖函數(shù),后續(xù)僅展示視圖函數(shù)。

# 注意:flask中的request和requests庫不是同一個(gè),要區(qū)分開
from flask import Flask, request

# 創(chuàng)建一個(gè)flask實(shí)例
app = Flask(__name__)


# 視圖函數(shù),只允許get和post請(qǐng)求
@app.route('/', methods=['GET', 'POST'])
def request_flask():
    # 獲取未經(jīng)處理過的原始數(shù)據(jù)而不管內(nèi)容類型,如果數(shù)據(jù)格式是json的
    # 則取得是json字符串,排序和請(qǐng)求參數(shù)一致
    data = request.get_data()
    print(data)
    print(type(data))
    return 'hello world'


if __name__ == '__main__':
    app.run()

2.2 測(cè)試代碼(一直應(yīng)用于后續(xù)章節(jié),不再贅述)

import requests

data = {
    "username": "cc",
    "password": "123456"
}

url = "http://127.0.0.1:5000/"
resp = requests.post(url=url, json=data)
print('post:', resp)
print('post:', resp.text)

resp = requests.get(url=url, params=data)
print('get:', resp)
print('get:', resp.text)

2.3 執(zhí)行效果

2.3.1 Flask

get.data()獲取到的請(qǐng)求數(shù)據(jù)是字節(jié)流,排序和請(qǐng)求參數(shù)一致。
使用Flask.Request的方法和屬性,獲取get和post請(qǐng)求參數(shù)(二),接口測(cè)試,flask,python,后端

2.3.2 請(qǐng)求結(jié)果

get和post請(qǐng)求都成功了。
使用Flask.Request的方法和屬性,獲取get和post請(qǐng)求參數(shù)(二),接口測(cè)試,flask,python,后端

3、Post請(qǐng)求:request.data

獲取到的也是未經(jīng)處理的原始數(shù)據(jù),如果數(shù)據(jù)格式是json的,則取得是json字符串,排序和請(qǐng)求參數(shù)一致。request.get_data()效果一樣

4、Post請(qǐng)求:request.get_json()

將請(qǐng)求參數(shù)做了處理,得到字典格式,因此排序會(huì)打亂,依據(jù)字典排序規(guī)則。

4.1 Flask代碼

# 視圖函數(shù),只允許get和post請(qǐng)求
@app.route('/', methods=['GET', 'POST'])
def request_flask():
	  # 將請(qǐng)求參數(shù)做了處理,得到字典格式,因此排序會(huì)打亂,依據(jù)字典排序規(guī)則。
    data = request.get_json()
    print(data)
    print(type(data))
    # 服務(wù)端就可以根據(jù)字典進(jìn)行取值
    username = request.get_json()["username"]
    print(username)
    return 'hello world'

4.2 執(zhí)行效果

4.2.1 Flask

將請(qǐng)求參數(shù)做了處理,得到字典格式,方便服務(wù)端按鍵取值,提取到username是“cc”。

注意:get請(qǐng)求是沒有字典的,不能夠取值,運(yùn)行時(shí)可以注釋掉get方法。
使用Flask.Request的方法和屬性,獲取get和post請(qǐng)求參數(shù)(二),接口測(cè)試,flask,python,后端

4.2.2 請(qǐng)求結(jié)果

post請(qǐng)求成功。
使用Flask.Request的方法和屬性,獲取get和post請(qǐng)求參數(shù)(二),接口測(cè)試,flask,python,后端

5、Post請(qǐng)求:request.json

跟request.get_json()效果相同。得到的是字典格式的,因此排序會(huì)打亂,依據(jù)字典排序規(guī)則。

代碼如下:

# 視圖函數(shù),只允許get和post請(qǐng)求
@app.route('/', methods=['GET', 'POST'])
def request_flask():
	# 將請(qǐng)求參數(shù)做了處理,得到的是字典格式的,因此排序會(huì)打亂,依據(jù)字典排序規(guī)則
    data = request.json
    print(data)
    print(type(data))
    # 如果這里的key服務(wù)端寫錯(cuò)了,客戶端請(qǐng)求時(shí),就會(huì)出現(xiàn)500
    username = request.json['username']
    print(username)
    return 'hello world'

6、Get請(qǐng)求:request.args.get()

6.1 Flask代碼

# 視圖函數(shù),只允許get和post請(qǐng)求
@app.route('/', methods=['GET', 'POST'])
def request_flask():
	# 可以獲取單個(gè)的值
    username = request.args.get("username")
    print(username)

    return 'hello world'

6.2 執(zhí)行結(jié)果

服務(wù)端拿到了username的值“cc”
使用Flask.Request的方法和屬性,獲取get和post請(qǐng)求參數(shù)(二),接口測(cè)試,flask,python,后端

7、Get請(qǐng)求:request.args.to_dict()

7.1 Flask代碼

# 視圖函數(shù),只允許get和post請(qǐng)求
@app.route('/', methods=['GET', 'POST'])
def request_flask():
	# 可以獲取get請(qǐng)求的所有參數(shù),返回值是ImmutableMutiDict(不可變的多字典)類型
    i = request.args
    print(i)
    # 將獲得的參數(shù)轉(zhuǎn)化成字典
    j =  i.to_dict()
    print(j)
    print(type(j))
    print(j["username"])
    return 'hello world'

7.2 執(zhí)行結(jié)果

使用Flask.Request的方法和屬性,獲取get和post請(qǐng)求參數(shù)(二),接口測(cè)試,flask,python,后端

8、模擬請(qǐng)求報(bào)錯(cuò)

8.1 500 Internal Server Error

當(dāng)服務(wù)端key寫錯(cuò)時(shí),就會(huì)報(bào)500錯(cuò)誤,例如可以把key username改成usename,運(yùn)行后看下效果。
使用Flask.Request的方法和屬性,獲取get和post請(qǐng)求參數(shù)(二),接口測(cè)試,flask,python,后端使用Flask.Request的方法和屬性,獲取get和post請(qǐng)求參數(shù)(二),接口測(cè)試,flask,python,后端

8.2 404 Not Found

僅創(chuàng)建了實(shí)例,并沒有視圖函數(shù),啟動(dòng)socket服務(wù)后,訪問地址就會(huì)報(bào)404?;蛘哒?qǐng)求url填寫錯(cuò)誤。

from flask import Flask

# 創(chuàng)建一個(gè)flask實(shí)例
app = Flask(__name__)

if __name__ == '__main__':
    app.run()

使用Flask.Request的方法和屬性,獲取get和post請(qǐng)求參數(shù)(二),接口測(cè)試,flask,python,后端
使用Flask.Request的方法和屬性,獲取get和post請(qǐng)求參數(shù)(二),接口測(cè)試,flask,python,后端文章來源地址http://www.zghlxwxcb.cn/news/detail-645712.html

到了這里,關(guān)于使用Flask.Request的方法和屬性,獲取get和post請(qǐng)求參數(shù)(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包