您的位置:首页 > 其它

tornado 学习之路

2015-11-04 10:06 239 查看
首先介绍一下Tornado的主要模块:

web:FriendFeed使用的Web框架,实现了Tornado的大多数重要功能;
escape:对XHTML,JSON,URL编码解码的一些方法;
database:对MySQLdb的一个简单封装;
template:基于Python的web模板系统;
httpclient:被设计用于同web和httpserver协同工作的非阻塞式HTTP客户端;
auth:第三方认证的实现;
locale:一套本地化,翻译机制;
options:针对服务器环境的命令行,配置文件解析工具;

底层模块

httpserver:服务于web模块的非常简单的HTTP服务器的实现;
iostream:对非阻塞式的常用socket读写的简单封装;
ioloop:核心的I/O循环;

其他模块

s3server:一个web服务器,实现了Amazon S3的大部分接口,依靠本地文件存储实现。

一个Tornado的Web应用会将一组URL映射到tornado.web.RequestHandler的子类上去,子类中定义了get()和post()方法用以处理不同的HTTP请求。

下面代码将根目录/映射到MainHandler,将一个URL模式/story/([0-9]+)映射到StoryHandler.

Python代码


class MainHandler(tornado.web.RequestHandler):

def get(self):

self.write("You request the main page")

class StoryHandler(tornado.web.RequestHandler):

def get(self,story_id):

self.write("You requested the story " + story_id)

application = tornado.web.Application([(r"/",MainHandler),(r"/story/([0-9]+)",StoryHandler),])

使用get_argument()方法获取发送过来的参数:

Python代码


class MainHandler(tornado.web.RequestHandler):

def get(self):

self.write('<html><body><form action="/" method="post">'

'<input type="text" name="message">'

'<input type="submit" value="Submit">'

'</form></body></html>')

def post(self):

self.set_header("Content-Type","text/plain")

self.write("You wrote "+ self.get_argument("message"))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: