tornado 简单使用

Posted on Posted in tornado
Tips: 本文创建于2016年8月18日,已超过 2 年,内容或图片可能已经失效!

> 创建一个简单的tornado应用

  1. #!/usr/bin/env python  
  2. # coding:utf-8  
  3. import tornado.httpserver  
  4. import tornado.ioloop  
  5. import tornado.web  
  6. import tornado.options  
  7.   
  8. from tornado.options import define, options  
  9.   
  10. define("port", default=8000,type=int# 默认端口,启动时,可以用--port=9000更改  
  11.   
  12. class IndexHandler(tornado.web.RequestHandler):  
  13.     def get(self):  
  14.         arg = self.get_argument('q','hello') # 获取q参数,如果没有,就是hello  
  15.         self.write(arg + 'world !') # write 方法,写到页面  
  16. if __name__ == '__main__':  
  17.     tornado.options.parse_command_line() #解析命令行  
  18.     app = tornado.web.Application( handlers = [(r"/", IndexHandler)]) # 增加/路由,匹配到IndexHandler  
  19.     http_server = tornado.httpserver.HTTPServer(app) # 创建http实例,传入app  
  20.     http_server.listen(options.port) # 监听端口  
  21.     tornado.ioloop.IOLoop.instance().start() #启动项目  

> 模版和表单

> py 文件

  1. #!/usr/bin/env python  
  2. # coding:utf-8  
  3. import os.path  
  4.   
  5. import tornado.httpserver  
  6. import tornado.ioloop  
  7. import tornado.options  
  8. import tornado.web  
  9.   
  10. from tornado.options import define, options  
  11. define("port",default=8000,help="run on the given port",type=int)  
  12.   
  13. class IndexHandler(tornado.web.RequestHandler):  
  14.     def get(self):  
  15.         self.render("index.html")  
  16.   
  17. class ContentHandler(tornado.web.RequestHandler):  
  18.     def post(self):  
  19.         n1 = self.get_argument('n1')  
  20.         n2 = self.get_argument('n2')  
  21.         n3 = self.get_argument('n3')  
  22.         n4 = self.get_argument('n4')  
  23.         self.render("content.html",n1=n1,n2=n2,n3=n3,n4=n4)  
  24.   
  25. if __name__ == '__main__':  
  26.     tornado.options.parse_command_line()  
  27.     app = tornado.web.Application(  
  28.         handlers = [(r'/',IndexHandler),(r'/content',ContentHandler)],  
  29.         template_path = os.path.join(os.path.dirname(__file__),"templates"),  
  30.         static_path = os.path.join(os.path.dirname(__file__),"static123")  
  31.         )  
  32.     http_server = tornado.httpserver.HTTPServer(app)  
  33.     http_server.listen(options.port)  
  34.     tornado.ioloop.IOLoop.instance().start()  

> index.html

  1. <!DOCTYPE html>  
  2. <html>  
  3.  <head><title>index</title></head>  
  4.  <body>  
  5.   <hrefhref='{{static_url("1.css")}}'> <!-- static/1.css -->  
  6.   <form method="post" action="/content">  
  7.    <p>N1<br /><input type="text" name="n1"></p>  
  8.    <p>N2<br /><input type="text" name="n2"></p>  
  9.    <p>N3<br /><input type="text" name="n3"></p>  
  10.    <p>N4<br /><input type="text" name="n4"></p>  
  11.    <input type="submit">  
  12.   </form>  
  13.  </body>  
  14. </html>  

> content.html

  1. <!DOCTYPE html>  
  2. <html>  
  3.  <head><title>Content</title></head>  
  4.  <body>  
  5.   <h1>n1:{{n1}}</h1>  
  6.   <h1>n2:{{n2}}</h1>  
  7.   <h1>n3:{{n3}}</h1>  
  8.   <h1>n4:{{n4}}</h1>  
  9.  </body>  
  10. </html>  
» 转载请注明来源:呢喃 » tornado 简单使用