首页 > 代码库 > tornado 学习之GET POST方法 -- ()转
tornado 学习之GET POST方法 -- ()转
1 import torndb 2 import tornado.web 3 import tornado.ioloop 4 from tornado.options import define,options,parse_command_line 5 6 define(‘port‘,default=8888,help=‘run on the port‘,type=int) 7 database=torndb.Connection(‘localhost‘,‘talk‘,user=‘root‘,password=‘ll‘) 8 l=[] 9 class MainHandler(tornado.web.RequestHandler): 10 def get(self): 11 self.render(‘a.html‘,title=‘haha‘,items=l) 12 def post(self): 13 count=1 14 print(self.request.remote_ip) 15 talk=self.get_argument(‘talk‘) 16 talk=str(talk) 17 database.execute(‘insert into chatting(id,content) values(%d,"%s")‘%(count,talk)) 18 l.append(talk) 19 self.render(‘a.html‘,title=‘haha‘,items=l) 20 def main(): 21 parse_command_line() 22 app=tornado.web.Application( 23 [ 24 (r‘/‘,MainHandler), 25 ], 26 ) 27 28 app.listen(options.port) 29 tornado.ioloop.IOLoop.instance().start() 30 31 if __name__==‘__main__‘: 32 main()
以上代码是依照demo的风格写了个简单的小例子以说明get和post的方法使用
a.html的内容如下:
1 <html> 2 <head> 3 <title>{{title}}</title> 4 </head> 5 <body> 6 <form name=‘input‘ action=‘/‘ method=‘post‘> 7 talk: 8 <input type=‘text‘ name=‘talk‘/> 9 <input type=‘submit‘ value=‘send‘/> 10 </form> 11 <ul> 12 {%for i in items%} 13 <li>{{escape(i)}}</li> 14 {%end%} 15 </ul> 16 </body> 17 </html>
说明:
<第一次访问网站时采用get方法,之后由于在html中采用form表单且方法使用的post,所以后来的传递数据全用post方法>
浏览器打开localhost:8888的时候,发出get请求,请求根目录"/",根据tornado.web.Application中参数列表中元组对(r‘/‘,MainHandler),于是找到MainHandler类,这个类继承了tornado.web.RequestHandler类,但是TA里面没有定义get和post方法(具体可以看源码),所以在MainHandler类中定义。由于我只在用户第一次访问网站时处理get方法,所以就是render a.html 就可以了。之后传递数据全用post方法,并把网页上输入的数据存放到数据库中。
浏览器显示如下:
数据库中显示如下:
终端显示如下:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。