-----------在get方法中获取url中参数的基本实例-----------------
#-*-encoding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import tornado.ioloop
import tornado.web
class 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)#监听端口3
tornado.ioloop.IOLoop.instance().start()
---------演示一个获取post请求中参数的实例----------------
如果获取get或者post请求参数更简单,只需要调用从requesthandlder类中继承来的get_argument()方法即可,原型如下:
get_argument('name',default='',strip=False)
name是请求中的参数
default指定没有获取参数时的一个默认值
strip指定是否对获取的参数进行两头去空处理
#-*-encoding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import tornado.web
import tornado.ioloop
class 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()方法来获取和处理它