近日,在使用flask
框架獲取前端的請求時獲取引數時,遇到了幾個問題;之前的專案也有使用這部分,當時程式沒有問題就沒再深究,直到遇到了問題。果然,遇到問題才會成長!^_^
因此,對get
和post
兩種請求方式的引數獲取方式進行梳理。
request
物件是從客戶端向伺服器發出請求,包括使用者提交的資訊以及客戶端的一些資訊。客戶端可通過html表單或在網頁位址後面提供引數的方法提交資料,然後通過request
物件的相關方法來獲取這些資料。
request
請求總體分為兩類:
get
請求
get
把引數包含在url
中,訪問時會在位址列直接顯示引數不安全,且引數大小比較小
post
請求
引數通過request body
傳遞
在最初使用時,上網一搜,得到的結果大致如下:
flask獲取引數方式:
request.form.get(
"key"
,type
=str
, default=
none
)# 獲取表單資料
request.args.get(
"key"
)# 獲取get請求引數
request.values.get(
"key"
)# 獲取所有引數
上述是三種方式,可以滿足基本的使用,但是並不是萬能的!當採用
get
請求方式時,引數直接顯示在請求連線中,可以使用兩種獲取引數的方式:
在route
裝飾器語句中,通過methods
指定請求方式,如下:
"/", methods=
["get"])
獲取引數
if request.method ==
"get"
: comment = request.args.get(
"content"
) comment = request.values.get(
"content"
)
客戶端在傳送post
請求時,資料可以使用不同的content-type
來傳送。
比如:在postman
軟體中,可以方便的檢視引數是以什麼形式傳送的,對應的content-type
是什麼。
body
中選擇「form-data」
, 則對應的headers中的「content-type」
是「multipart/form-data」
,引數形式是key-value。
具體位置如下圖:
]# 或者
request.json.get(
'centent'
)獲取的是序列化後的引數,一般情況下滿足使用,不需要json.loads()
來序列化。
列印出結果就是json
串,如
request.get_data(
)
request.get_data()
獲取的原始引數,接受的是type是'bytes
』的物件,如:b
request.values.get(
'key'
)
content-type
為multipart/form-data
,獲取表單引數可以使用request.form.get('content')
或者request.form['content']
來獲取引數
request.form.get(
'key'
)# 或者
request.form[
'key'
]
if request.method ==
"post"
:if request.content_type.startswith():
# comment = request.get_json()["content"]
comment = request.json.get(
'content'
)elif request.content_type.startswith(
'multipart/form-data'):
comment = request.form.get(
'content'
)else
: comment = request.values.get(
"content"
)
"/"
, methods=
["get"
,"post"])
defprocess()
:if request.method ==
"get"
: comment = request.args.get(
"content"
)# comment = request.values.get("content")
if request.method ==
"post"
:if request.content_type.startswith():
# comment = request.get_json()["content"]
comment = request.json.get(
'content'
)elif request.content_type.startswith(
'multipart/form-data'):
comment = request.form.get(
'content'
)else
: comment = request.values.get(
"content"
) logger.debug(
'%s'
%comment)
Flask中post和get的區別
原理 post和get都是與伺服器互動的方法,還有put和delete。從http標準看來get,post,put,delete對應的就是對這個資源的查,改,增,刪四個操作,因此我們可以理解為get一般是用來獲取 查詢伺服器資源資訊,post一般是用於更新伺服器資源資訊。即get是向伺服器傳送取資料...
node獲取get引數和post引數
引入包url,使用url.parse 對url位址進行解析,返回乙個物件,就是get引數.let url.parse req.url,true 表單部分 js部分 使用cmd進入目錄後開啟看看node 4 url包獲取get引數.js 引入包const querystring require que...
express獲取表單get和post請求的 資料
get請求的引數在url中,在原生node中,需要使用url模組來識別引數字串。在express中,不需要使用url模組了。可以直接使用req.方法來直接獲取。let comm req.query console.log comm console.log req.host console.log r...