python tornado 入門

Rocky_Ansi發表於2016-08-23
#!/usr/bin/env python
# coding:utf-8
import textwrap

import tornado.httpserver
import tornado.ioloop
import tornado.options #從命令列種讀取設定。
#如果一個與define語句中同名的設定在命令列中被給出,那麼它將成為全域性的options的一個屬性 即 options.port 相當於define的url的port
import tornado.web

#python filename --port=8000  //run py
from tornado.options import define, options
define ("port", default=8080, help="run on the given port", type=int)


#curl http://localhost:8080/
#curl http://localhost:8080/?greeting=ligang
#Tornado的請求處理函式類, 當處理一個請求時,Tornado將這個類例項化,並呼叫與HTTP請求方法所對應的方法。這裡只定義了get()
#也就是說處理函式將對http的GET請求作出響應;

class Indexhandler(tornado.web.RequestHandler):
    def get(self):#預設呼叫,通過url ?傳遞引數
        greeting = self.get_argument('greeting', 'Hello')#預設引數 
        self.write(greeting + ', friendly user!')#引數作為http返回,寫到http響應中;

class reverseHandle(tornado.web.RequestHandler):
    def get(self, input):
        self.write(input[::-1])

class Wraphandler(tornado.web.RequestHandler):
    def post(self): 
        text = self.get_argument('text')
        width= self.get_argument('width', 40)
        self.write(textwrap.fill(text, int(width)))


if __name__ == '__main__':
    tornado.options.parse_command_line()
    handlers=[ 
            (r'/', Indexhandler),
             (r'/wrap', Wraphandler),
             (r'/reverse/(\w+)' , reverseHandle),
            ]        
    app = tornado.web.Application(handlers)  
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

  

相關文章