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