假设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中?后面的参数
也是获得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"}