python bottle學習(四)request.quest/query_string/params/body等方法介紹

 
假設url:http://0.0.0.0:18082/api/cluster/group?wzd=111&abc=cc
方法類型:POST,body是{"name":"abc"}
 
1. request.query
獲得一個bottle的FormsDict對象,該對象能夠轉化爲字典,裏面的內容是:
{"wzd":"111","abc":"cc"},即,是url中?後面的參數
 
2.request.params
也是獲得FormsDict對象,轉化爲字典後,其內容是:
{"wzd":"111","abc":"cc","{"name":"abc"}":""}
即,其內容包含了?後的參數和值,同時也包含了body中的值,要注意的是,它把body中因此的參數做爲一個key存入了。
 
3.request.body
返回一個StringIO對象,經過read方法取出的數據是body裏的全部值,無論body裏是否是json該方法都原樣返回body裏的全部內容。對本例而言是返回:{"name":"abc"}
 
4.request.query_string
它獲得的是,url中?後面全部的值,最爲一個字符串,即:wzd=111&abc=cc
 
5.request.json
當請求的Content-Type`` 是`application/json的時候,該方法返回的是body中的json串,若是body中不是json會拋出異常:ValueError: No JSON object could be decoded,對應本例,返回:{"name":"abc"}
 
6.request.form
有這麼一個表單:
<form action="/login" method="post">
Username: <input name="username1" type="text" />
Password: <input name="password1" type="password" />
<input value="Login" type="submit">
</form>
那麼要獲取username/password有以下方法:
方法一:
username = request.forms.get('username1') # 對應的是Username輸入框中的name屬性
password = request.forms.get('password1') # 對應的是password輸入框中的name屬性
方法二:
username = request.POST.get('username')
password = request.POST.get('password')
而且,上面兩種get方法均可以跟一個默認值,當username或者password不存在的時候返回設置的默認值,如:username = request.POST.get('username','abc'),當username不存在的時候,返回abc,若是不設置,返回none
 
另外,bottle.request.forms,返回表單中全部的k,v,即:{「username」:"123","password":"324"}
相關文章
相關標籤/搜索