假设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"}

python bottle学习(四)request.quest/query_string/params/body等方法介绍的更多相关文章

  1. request.quest/query_string/params/body等方法介绍

    假设url:http://192.168.1.111:8080/api/cluster/group?wzd=111&abc=cc 方法类型:POST,body是{"name" ...

  2. Python基础学习四

    Python基础学习四 1.内置函数 help()函数:用于查看内置函数的用途. help(abs) isinstance()函数:用于判断变量类型. isinstance(x,(int,float) ...

  3. Python Tutorial 学习(四)--More Control Flow Tools

    4.1 if 表达式 作为最为人熟知的if.你肯定对这样的一些表达式不感到陌生: >>> x = int(raw_input("Please enter an intege ...

  4. python bottle学习(三)动态路由配置(通配符)

    from bottle import (run, route, get, post, default_app, Bottle) @route('/', method='GET') @route('/i ...

  5. python bottle学习(二)加载配置文件

    from bottle import (run, route, get, post, default_app, Bottle) """ 首先获得一个app对象,有两种方法 ...

  6. python+django学习四

    1.setting.py中设置好   STATIC_URL = '/static/'STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')] 前端文件存 ...

  7. 【Python基础学习四】字符串(string)

    Python 字符串 字符串是 Python 中最常用的数据类型.可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'hello' va ...

  8. python bottle学习(一)快速入门

    from bottle import (run, route, get, post, put, delete) # bottle中添加路由的两种方法 # 第一种,使用route装饰器,需要指定meth ...

  9. Python基础学习四 列表、元组、字典、集合

    列表list,用中括号“[ ]”表示 1.任意对象的有序集合 列表是一组任意类型的值,按照一定顺序组合而成的 2.通过偏移读取 组成列表的值叫做元素(Elements).每一个元素被标识一个索引,第一 ...

随机推荐

  1. Navicat Premium如何打开SQL文件.MDF和.LDF文件

    相信大家再装SQL Server时都会遇到一件很头疼的事情--装完SQL server之后发现没有启动程序.没有经验的会以为SQL SERVER安装失败了于是选择重装.可是呵呵,重装了4,5次还是一样 ...

  2. 乐鑫esp8266基于freeRtos实现私有服务器本地远程OTA升级

    目录 一.前言: 二.回顾下OTA的流程: 三.lwip网络框架的知识的使用: 四.如何处理服务器返回的数据? 五.扇区的擦除和烧写? 六.如何调用? 七.好好享用吧! 八.下载: 九.工程截图: 代 ...

  3. 新建 jsp异常,The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

    新项目,新建jsp页面的时候报异常: Multiple annotations found at this line: - The superclass "javax.servlet.htt ...

  4. :not() 选择器选取除了指定元素以外的所有元素

    :not() 选择器选取除了指定元素以外的所有元素; 最近有人那上图问:如果触碰li时背景色和字体都变化,但是已经被选中的(现在是第一行)不变怎么办?:not是一个非常简单方便的办法:加入我给已经被选 ...

  5. Livereload介绍

    Livereload可理解为即时刷新,在前端开发中,开发人员在编写或调试html/js/css代码后须要从编辑器切换到浏览器.再刷新浏览器才干看到页面变化,这样的十分频繁的操作在一定程度上影响了工作效 ...

  6. bootstrap源码学习与示例:bootstrap-tab

    http://www.cnblogs.com/rubylouvre/archive/2012/12/22/2829176.html  bootstrap源码学习与示例 https://www.w3sc ...

  7. POJ-1318(list.sort()输出不为字典序,map才是按字典序排列)

    #include<iostream> #include<string> #include<list> #include<map> #include< ...

  8. Mac OSX下Go语言开发环境的搭建与配置--使用InteliJ IDEA 13

    折腾了一上午终于把go语言的ide配置好了. 其实GO语言的语法和特性早在去年的时候就学习了一遍.结果后来一直没机会进行开发,结果还是个GO小白.感叹一下,要学好一门编程语言唯一的途径就是多写代码.. ...

  9. 终端I/O termios属性设置 tcsetattr设置(转)

    终端I/O有两种不同的工作方式: 规范方式输入处理.在这种方式中,终端输入以行为单位进行处理.对于每个读要求,终端驱动程序最多返回一行. 非规范方式输入处理.输入字符不以行为单位进行装配. 如果不作特 ...

  10. c# 文件操作 txt、xml、ini

    1. txt文件 /// <summary> /// 读文本文件信息 /// </summary> /// <param name="FilePath" ...