Flask??request?對(duì)象介紹
前言:
一個(gè)完整的 HTTP 請(qǐng)求,包括客戶端向服務(wù)端發(fā)送的 Request 請(qǐng)求和服務(wù)器端發(fā)送的 Response 響應(yīng)。為了能方便的訪問(wèn)獲取請(qǐng)求及響應(yīng)報(bào)文信息,Flask 框架提供了一些內(nèi)建對(duì)象,下面就來(lái)說(shuō)一下 Flask 針對(duì)請(qǐng)求提供的內(nèi)建對(duì)象request。
1、request請(qǐng)求對(duì)象
request請(qǐng)求對(duì)象封裝了從客戶端發(fā)來(lái)的請(qǐng)求報(bào)文信息,我們能從request對(duì)象上獲取請(qǐng)求報(bào)文中的所有數(shù)據(jù)。 其大部分功能是由依賴包Werkzeug完成的,Flask 做了一些特定功能的封裝,形成了request請(qǐng)求對(duì)象。
1.1request請(qǐng)求對(duì)象的使用
?導(dǎo)入flask包中的request對(duì)象,就可以直接在請(qǐng)求函數(shù)中使用該對(duì)象了。
from flask import request
@app.route('/user', methods=['GET', 'POST'])
def user():
if request.method == 'POST':
user_name = request.form['user_name']
return 'user :{} add success!'.format(user_name)
else:
user_id = request.args.get('user_id', 0)
return 'Hello user:{}!'.format(user_id)
上述代碼中:request對(duì)象中的method變量可以獲取當(dāng)前請(qǐng)求的方法,即GET、POST、PUT、DELETE等;form變量獲取POST請(qǐng)求form-data表單中的數(shù)據(jù),本質(zhì)是一個(gè)字典,如果提交的表單中沒(méi)有user_name,則會(huì)返回 400 Bad Request 的錯(cuò)誤,當(dāng)然也可以使用異常捕獲機(jī)制處理。request.args.get()方法獲取的是GET請(qǐng)求的url中的參數(shù)(問(wèn)號(hào)?之后的部分),第一個(gè)參數(shù)指定獲取的 url 參數(shù)的 key,第二個(gè)參數(shù)指定默認(rèn)值,當(dāng) key 不存在時(shí),則返回默認(rèn)值。
如下:
GET請(qǐng)求

POST請(qǐng)求

除此之外,請(qǐng)求報(bào)文中的其他信息都可以通過(guò) request 對(duì)象提供的屬性和方法獲取,常用的部分如下:
url:請(qǐng)求的urlargs:Werkzeug的ImmutableMultiDict對(duì)象,存儲(chǔ)解析后的查詢字符串,可通過(guò)字典方式獲取鍵值blueprint:當(dāng)前藍(lán)本的名稱cookies:一個(gè)包含所有隨請(qǐng)求提交的cookies的字典data:包含字符串形式的請(qǐng)求數(shù)據(jù)endpoint:于當(dāng)前請(qǐng)求相匹配的端點(diǎn)值files:Werkzeug的MultiDict對(duì)象,包含所有上傳文件form:Werkzeug的ImmutableMultiDict對(duì)象,包含解析后的表單數(shù)據(jù)values:Werkzeug的CombinedMultiDict對(duì)象,結(jié)合了args和form屬性的值get_data(cache=True,as_text=False,parse_from_data=False):獲取請(qǐng)求中的數(shù)據(jù),默認(rèn)讀取為字節(jié)字符串(bytestring),as_text為True則返回解碼后的unicode字符串get_json(self,force=False,silent=False,cache=True):作為 json 解析并返回?cái)?shù)據(jù),如果MIME類型不是 json,返回 None(除非 force 設(shè)為 True);解析出錯(cuò)則拋出Werkzeug提供的BadRequest異常(如果未開(kāi)啟調(diào)試模式,則返回400錯(cuò)誤響應(yīng)),如果 silent 設(shè)為 True 則返回 None;cache 設(shè)置是否緩存解析后的 json 數(shù)據(jù)headers:Werkzeug的EnvironHeaders對(duì)象,包含請(qǐng)求的頭部字段json:包含解析后的 json 數(shù)據(jù),內(nèi)部調(diào)用 get_json(),可通過(guò)字典的方式獲取鍵值method:請(qǐng)求的 HTTP 方法referrer:請(qǐng)求發(fā)起的源 url,即refererscheme:請(qǐng)求的URL模式(http 或 https)user_agent:用戶代理(User Agent),包含了用戶的客戶端類型,操作系統(tǒng)類型等信息
到此這篇關(guān)于 Flask? request 對(duì)象詳情的文章就介紹到這了,更多相關(guān) Flask? request 對(duì)象內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python機(jī)器學(xué)習(xí)利用隨機(jī)森林對(duì)特征重要性計(jì)算評(píng)估
本文是對(duì)隨機(jī)森林如何用在特征選擇上做一個(gè)簡(jiǎn)單的介紹。隨機(jī)森林非常簡(jiǎn)單,易于實(shí)現(xiàn),計(jì)算開(kāi)銷也很小,更令人驚奇的是它在分類和回歸上表現(xiàn)出了十分驚人的性能2021-10-10
Python實(shí)現(xiàn)Appium端口檢測(cè)與釋放的實(shí)現(xiàn)
這篇文章主要介紹了Python實(shí)現(xiàn)Appium端口檢測(cè)與釋放的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Python自動(dòng)化辦公之Excel拆分與自動(dòng)發(fā)郵件
這篇文章主要何大家分享一個(gè)真實(shí)的自動(dòng)化辦公案例,即向用戶發(fā)送帶有Excel附件的電子郵件,同時(shí)必須按用戶從主Excel文件中拆分?jǐn)?shù)據(jù)以創(chuàng)建他們自己的特定文件,然后將該文件通過(guò)電子郵件發(fā)送給正確的用戶,感興趣的可以了解一下2022-03-03
對(duì)Python中數(shù)組的幾種使用方法總結(jié)
今天小編就為大家分享一篇對(duì)Python中數(shù)組的幾種使用方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
Pandas_cum累積計(jì)算和rolling滾動(dòng)計(jì)算的用法詳解
今天小編就為大家分享一篇Pandas_cum累積計(jì)算和rolling滾動(dòng)計(jì)算的用法詳解,具有好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
Python pandas對(duì)excel的操作實(shí)現(xiàn)示例
這篇文章主要介紹了Python pandas對(duì)excel的操作實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Django項(xiàng)目如何配置Memcached和Redis緩存?選擇哪個(gè)更有優(yōu)勢(shì)?
這篇文章主要介紹了Django項(xiàng)目如何配置Memcached和Redis緩存,幫助大家更好的理解和學(xué)習(xí)使用django框架,感興趣的朋友可以了解下2021-04-04

