#!/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()