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