python tornado 入门

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

  

posted @ 2016-08-23 21:20  Rocky_Ansi  阅读(1623)  评论(0编辑  收藏  举报