- Chapter: Tornado表单处理
Tornado的每个请求处理程序,我们叫做handler,handler里可以自定义自己的处理程序,其实也就是重写方法,如post,get,get_current_user,send_error等等,这里我们只讲get和post的自定义。
我们都知道,在Tornado里,获得用户的输入,都是一个get_argument搞定,似乎很顺理成章:
1 | def post( self ): |
2 | nowamagic = self .get_argument( 'nowamagic' ) |
3 | self .write( nowamagic ) |
先介绍一点基本知识。我们来看看这么一个URL:http://www.nowamagic.net/academy/detail/13321002?page=1#comment
1 | >>> import urlparse |
2 | >>> urlparse.urlparse( 'http://www.nowamagic.net/academy/detail/13321002?page=1#comment' ) |
3 | ParseResult(scheme = 'http' , netloc = 'www.nowamagic.net' , path = '/academy/detail/13321002' , params = ' ', query=' page = 1 ', fragment=' comment') |
url由scheme(协议),netloc(主机),path(路径),params(最后路径的参数),query(查询字段),fragment(锚)组成。
下面我们要获取URL里的GET参数,也就是获取url query中的参数,怎么办呢?
对于单一的值,在get和post中调用self.get_argument("name", "default")。
对于多选的值,调用self.get_arguments("name")即可。
get_argument方法可以设置默认值,也可以设置是否删除两端的空格。
源码声明如下:
1 | get_argument( self , name, default = _ARG_DEFAULT, strip = True ) |
2 | get_arguments( self , name, strip = True ) |