tornado中参数的获取

来源:互联网 发布:人工智能的未来 pdf 编辑:程序博客网 时间:2024/06/15 12:41

-----------在get方法中获取url中参数的基本实例-----------------

#-*-encoding:utf-8 -*-import sysreload(sys)sys.setdefaultencoding('utf8')import tornado.ioloopimport tornado.webclass we(tornado.web.RequestHandler):def get(self,uid='0'):self.write('你好,你的uid号为:%s'%uid)app=tornado.web.Application([(r'/([0-9]+)',we)],debug=True)#当匹配的url到来时,会截取属于正则组匹配的部分,传递给get()方法,从而把数据传递给uid变量,在get()方法中得到使用if __name__=='__main__':app.listen(3)#监听端口3tornado.ioloop.IOLoop.instance().start()

---------演示一个获取post请求中参数的实例----------------

如果获取get或者post请求参数更简单,只需要调用从requesthandlder类中继承来的get_argument()方法即可,原型如下:

get_argument('name',default='',strip=False)

name是请求中的参数

default指定没有获取参数时的一个默认值

strip指定是否对获取的参数进行两头去空处理

#-*-encoding:utf-8 -*-import sysreload(sys)sys.setdefaultencoding('utf8')import tornado.webimport tornado.ioloopclass we(tornado.web.RequestHandler):def get(self):self.render('templates//test.html')def post(self):name=self.get_argument('name',default='匿名',strip=True)self.write('你的名字为%s'%name)app=tornado.web.Application([(r'/get',we)],debug=True)if __name__=='__main__':app.listen(5)tornado.ioloop.IOLoop.instance().start()

其中在templates目录下的test.html文件中写:

<!DOCTYPE html><html><body><h2>收到get请求</h2><form method='post'><input type='text' name='name' placeholder='请输入你的名字'/><input type='submit' value='发送post请求'/></form></body></html>

代码说明:

在上述代码中。服务器收到get请求时,返回一个带有表单的页面内容,当用户填写自己的名字,并单击‘发送post请求’时,将用户输入的名字以post参数形式发送到服务器端,最后服务器端调用get_argument()方法来获取和处理它