简单Web服务器
- Hello_Tornado.py
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
#定义在命令行情况下出传递参数的情况
class IndexHandler(tornado.web.RequestHandler):
def get(self):
greeting = self.get_argument('greeting', 'Hello')
#获取get参数,如果获取不到用第二个参数来代替
self.write(greeting + ', friendly user!')
#以字符串的形式作为HttpResponse
if __name__ == "__main__":
#启动Tornado的相关语句
tornado.options.parse_command_line()
app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
##首先使用Option来解析命令行,然后实例化类传递handlers,判断响应需要的类
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
#监听端口
在这个程序里可以使用python hello.py –port=8080来启动本地的开发服务器,在Tornado中又一个好用的函数Options
参数Handlers
app = tornado.web.application(handlers=[(r"/",IndexHandler)])
使用正则表达式指定路径
指定路径是使用字符串
字符串服务
import textwrap
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
class ReverseHandler(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()
app = tornado.web.Application(
handlers=[
(r"/reverse/(\w+)", ReverseHandler),
(r"/wrap", WrapHandler)
]
)
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
More
HTTP状态吗
404 400 405 500 200