在進行Flask開發中,前端須要發送不一樣的請求及各類帶參數的方式,好比GET方法在URL後面帶參數和POST在BODY帶參數,有時候又是POST的表單提交方式,這個時候就須要從request
提取參數。這篇文章是總結如何使用request
。html
在Flask的官方文檔中是這樣介紹request
的:前端
對於 Web 應用,與客戶端發送給服務器的數據交互相當重要。在 Flask 中由全局的 request 對象來提供這些信息。python
從Flask模塊導入request
:json
from flask import request
下面是request可以使用的屬性,其中黑體是比較經常使用的。flask
form
一個從POST和PUT請求解析的 MultiDict(一鍵多值字典)。api
args
MultiDict,要操做 URL (如 ?key=value )中提交的參數可使用 args 屬性:服務器
searchword = request.args.get('key', '')
values
CombinedMultiDict,內容是form
和args
。
可使用values替代form和args。markdown
cookies
顧名思義,請求的cookies,類型是dict。cookie
stream
在可知的mimetype下,若是進來的表單數據沒法解碼,會沒有任何改動的保存到這個·stream·以供使用。不少時候,當請求的數據轉換爲string時,使用data
是最好的方式。這個stream只返回數據一次。app
headers
請求頭,字典類型。
data
包含了請求的數據,並轉換爲字符串,除非是一個Flask沒法處理的mimetype。
files
MultiDict,帶有經過POST或PUT請求上傳的文件。
environ
WSGI隱含的環境配置。
method
請求方法,好比POST、GET。
path
http://www.example.com/myapplication/page.html?x=y
名稱 | 內容 |
---|---|
path | /page.html |
script_root | /myapplication |
base_url | http://www.example.com/myapplication/page.html |
url | http://www.example.com/myapplication/page.html?x=y |
url_root | http://www.example.com/myapplication/ |
is_xhr
若是請求是一個來自JavaScript XMLHttpRequest
的觸發,則返回True
,這個只工做在支持X-Requested-With
頭的庫而且設置了XMLHttpRequest
。
blurprint
藍本名字。
endpoint
endpoint匹配請求,這個與view_args
相結合,但是用於重構相同或修改URL。當匹配的時候發生異常,會返回None。
get_json(force=False, silent=False, cache=True)
json
若是mimetype
是application/json
,這個參數將會解析JSON數據,若是不是則返回None。
可使用這個替代get_json()方法。
max_content_length
只讀,返回MAX_CONTENT_LENGTH
的配置鍵。
module
若是請求是發送到一個實際的模塊,則該參數返回當前模塊的名稱。這是棄用的功能,使用blueprints
替代。
routing_exception = None
若是匹配URL失敗,這個異常將會/已經拋出做爲請求處理的一部分。這一般用於NotFound
異常或相似的狀況。
url_rule = None
內部規則匹配請求的URL。這可用於在URL以前/以後檢查方法是否容許(request.url_rule.methods) 等等。
默認狀況下,在處理請求函數中寫下 print('request.url_rule.methods', request.url_rule.methods)
會打印:
request.url_rule.methods {‘GET’, ‘OPTIONS’, ‘HEAD’}
view_args = None
一個匹配請求的view參數的字典,當匹配的時候發生異常,會返回None。
更多api例子參考:
https://www.programcreek.com/python/example/60711/flask.request.data