Tornado学习笔记(二) 路由/post/get传参
本章我们学习 Tornado 的路由传参等问题
路由
路由的匹配
Tornado的路由匹配采用的是正则匹配
一般情况下不需要多复杂的正则,正则的基本规则如下(站长之家)

举个例子
(r'/sum/(\d+)', Sum),
该代码指匹配 /sum/ 后跟至少一个数字且只有数字的情况
* 需要注意的是网络上传输都是字符串
类 Sum编写
class Sum(tornado.web.RequestHandler):
# 数字类
def get(self, sum):
# 获取数字并返回
self.write('%s,%s' % (type(sum), sum))
我们访问 http://localhost:8001/sum/12 时
返回正常

我们访问 http://localhost:8001/sum/1a2 http://localhost:8001/sum/a12 http://localhost:8001/sum/12a http://localhost:8001/sum/a 时,均会报出404错误,证明没有匹配到路由
同理,当我们需要匹配两个参数时
(r'/(\w+)/stuggle/(\d+)', Stugggle),
接收时接收两个参数即可
def get(self, st, ins):
pass
post参数
与get一样,post请求会寻找到该视图的 post 方法
我们给视图 Hello 增加一个post
class Hello(tornado.web.RequestHandler):
# 封装一个类
def get(self):
# get请求进入该方法
self.write('Hello')
def post(self):
# post请求
txt = self.get_argument('txt')
self.write(txt)
self.get_argument('txt') 指获取post传参中 Key 为 txt 的值,路由无需改动

get参数
get获取参数与上面的post没有差别
我们修改get方法来进行测试
def get(self):
# get请求进入该方法
arg = self.get_argument('arg')
arg1 = self.get_argument('arg1')
self.write('%s+%s' % (arg,arg1))

但是需要注意的是, get_argument 在获取不到该key时会报错,抛出400错误

get_argument 方法其实可以接收三个参数
get_argument(name,default=_ARG_DEFAULT,strip=True)
第一个参数就是key的值,第二个参数为如果接收不到默认的值,第三个是默认去除前后空格
一般情况下我们第二个参数传 None
def get(self):
# get请求进入该方法
arg = self.get_argument('arg', None)
arg1 = self.get_argument('arg1', None)
self.write('%s+%s' % (arg,arg1))
def post(self):
# post请求
txt = self.get_argument('txt', None)
self.write(txt)
这样就增加了兼容性

Tornado学习笔记(二) 路由/post/get传参的更多相关文章
- JS学习笔记 - fgm练习 2-5 - 函数传参 设置div样式
练习地址:http://www.fgm.cc/learn/lesson2/05.html <script> window.onload = function(){ var oDiv = d ...
- vue2.0学习笔记之路由(二)路由嵌套+动画
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue2.0学习笔记之路由(二)路由嵌套
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Tornado学习笔记(一) helloword/多进程/启动参数
前言 当你觉得你过得很舒服的时候,你肯定没有在进步.所以我想学习新的东西,然后选择了Tornado.因为我觉得Tornado更匹配目前的我的综合素质. Tornado学习笔记系列主要参考<int ...
- Django学习笔记二
Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...
- python3.4学习笔记(二十五) Python 调用mysql redis实例代码
python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...
- kvm虚拟化学习笔记(二)之linux kvm虚拟机安装
KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...
- amazeui学习笔记二(进阶开发4)--JavaScript规范Rules
amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...
- 微信小程序学习笔记二 数据绑定 + 事件绑定
微信小程序学习笔记二 1. 小程序特点概述 没有DOM 组件化开发: 具备特定功能效果的代码集合 体积小, 单个压缩包体积不能大于2M, 否则无法上线 小程序的四个重要的文件 *js *.wxml - ...
随机推荐
- ETL脚本的版本管理方法和 SourceTree 使用
=============================使用git管理Kettle 作业的一个注意=============================之前 ETL 作业是用 svn 管理的, ...
- EL11个内置对象
EL是JSP内置的表达式语言 JSP2.0开始,让再使用Java脚本,而是使用EL表达式和动态标签来代替Java脚本 EL替代的是<%=... %>,也就是说EL只能做输出 EL可以输出的 ...
- GCC编译器原理(二)------编译原理一:ELF文件(1)
二.ELF 文件介绍 2.1 可执行文件格式综述 相对于其它文件类型,可执行文件可能是一个操作系统中最重要的文件类型,因为它们是完成操作的真正执行者.可执行文件的大小.运行速度.资源占用情况以及可扩展 ...
- Immunity Debugger学习 二
1.Exploit开发 发现漏洞只是一个开始,在你完成利用程序之前,还有很长一段路要走.不过Immunity专门为了这项任务做了许多专门设计,相信能帮你减少不少痛苦.接下来我们开发一些PyComman ...
- python3.x与2.x区别
1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果. Py3.1性能比Py2 ...
- CF809C Find a car
传送门 luogu 其实这题的某个位置\((i,j)\)的数是\((i-1)\mathrm{xor}(j-1)+1\) 首先一个矩形的答案可以拆成\((x2,y2)-(x1-1,y2)-(x2,y1- ...
- PHP入门知识
一.搭建开发环境 想要使用一门后端语言,当然是要先搭建开发环境,模拟出服务器环境,不然怎么体现出后端,所以就先大众使用使用的Apache.Mysql,如果不想那么多折腾,建议直接使用xampp或者wa ...
- jira迁移数据
jira迁移数据有两种方式 方式一: jira系统自带的备份恢复操作 最简单的,但不一定能成功 从/export/atlassian/application-data/jira/export下载至 ...
- jQuery的节点添加、删除、替换等操作
//几种添加节点的方法 //$("p").append("<b>你好吗?</b>");//向p元素中追加<b> //$(&q ...
- Javascript - ExtJs - 其它
组件通用配置 width:number | "%" //宽 height:number | "%" //高 autoEl:string | Json / ...