首页 > 代码库 > 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方法,并把网页上输入的数据存放到数据库中。

 浏览器显示如下:

 

数据库中显示如下:

 

终端显示如下: