Tornado边看边写
文章平均质量分 63
Luciano9esu
这个作者很懒,什么都没留下…
展开
-
tornado: options.py
问题:1.Options.py在tornado里面起什么作用?2.这个模块中包含什么方法?3.各个方法有什么作用?4.使用此模块的典型场景5.使用各个函数的典型场景 边看边答:1.呃,基本上现在我的理解就是:Options提供一个透明,简单的方法,使得一个module可以很容易从tornado统一的接口中获得所需要的外来参数,例如:从命令行获得#!/ur/...原创 2013-01-20 00:33:12 · 119 阅读 · 0 评论 -
tornado: httpclient & simple_httpclient
HTTPClient是httpclient.py中看到的第一个类。内容非常简单,但是却又没有看上去那么简单:fetch方法的实现会根据构造HTTPClient时传入的参数(async_client_class)发生变化。也就是说,HTTPClient并不是一个interface,而是一个delegator每一个HTTPClient实例都会自己创建以及维护一个IOLoop。使用iolo...原创 2013-02-19 14:09:04 · 257 阅读 · 0 评论 -
tornado: IOLoop
小白说在前面:“俺一没任何unix/linux基础(就会安装个程序啥的),二基本没有python的基础(话说年前给我一个简单的python程序俺都看不懂)。所以碰到ioloop这个涉及到线程/信号/EPOLL之流底层知识的时候彻底土鳖,所以边猜边看,无知者无罪 看到代码里第一句话有点儿感动“An I/O event loop for non-blocking sockets.”,...原创 2013-02-17 15:51:51 · 134 阅读 · 0 评论 -
tornado: process.py
其实process.py里面只有一个重头fork_processes 看到这里其实源自看到netutil里面的TCPServer.start方法:“可以根据参数启动多个tornado进程”,start方法的源代码如下(注释已去): def start(self, num_processes=1): assert not self._started ...原创 2013-02-17 11:44:28 · 136 阅读 · 0 评论 -
[zz] 轻量级web server Tornado代码分析
最近不是在学习tornado嘛,随手bing了一把,找到一篇很好的文章,放到这里留做记录。 全文转载自“上善若水”的博客。 http://blog.csdn.net/goldlevi/article/details/7047726 最近在做项目,使用了Tornado这个用python写的由Facebook开源出来的web服务器框架。这确实是一个轻量级的框架,只需要几行代码,直接运行脚本,...原创 2013-02-16 22:47:53 · 173 阅读 · 0 评论 -
tornado: TCPServer & HttpServer
HttpServer的父类是TCPServer,而且从实现来看,默认只是简单的重载了handle_stream这个方法,而已。 HttpServer的构造函数里面,最重要的是request_callback,也就是说,当一个request进来的时候,怎么处理。 拿blog这个例子来说,Application干的就是这个事情。 HttpServer这个简单的类后面,则是TCPServer这...原创 2013-02-16 19:46:54 · 288 阅读 · 0 评论 -
tornado: 一次request从开始到结束
一个简单的调用顺序(只包含了重要的方法):On IOLoop.READ triggered:1. TCPServer._handle_connection2. HTTPServer.handle_stream3. HTTPConnection.__init__4. HTTPConnection._on_headers5. HTTPConeection._on_reques...原创 2013-02-16 17:41:27 · 143 阅读 · 0 评论 -
tornado: template 之 各种node/block
template中的_parse方法是模板文法的解析器,而这个文件中一坨一坨的各种node以及block,就是解析结果的承载者,也就是说在经过parse处理过后,我们输入的tornado的html模板就变成了各种block的集合。 这些block和node的祖宗就是这个“抽象”类, _Node,它定义了三个方法定义,其中generate方法是必须由子类提供实现的(所以我叫它“抽象”类)...原创 2013-02-08 11:22:42 · 153 阅读 · 0 评论 -
tornado: web.py 之 其他
第一个有意思的是RedirectHandler,它的代码和思路都比较有趣,代码很短,直接看: class RedirectHandler(RequestHandler): """Redirects the client to the given URL for all GET requests. You should provide the keyword ar...原创 2013-01-28 22:50:46 · 145 阅读 · 0 评论 -
tornado: web.py 之 Authenticated
小半个晚上只干了一件事,研究web.py里面的authenticated方法。 先看这个函数的注释: """Decorate methods with this to require that the user be logged in.""" 所以基本这个很清楚了,假设你有一个handler,而这个handler中有一个方法调用需要用户已登录,例如: ...原创 2013-01-28 00:44:20 · 148 阅读 · 0 评论 -
tornado: web.py 之 RequestHandler
RequestHandler这个类有超过1000行,看似十一个庞然大物,其实大多是注释和空方法,总体读起来非常容易。 这个类也是blog项目中所有handler的父类,想必大多数tornado项目也是如此,当然顾名思义这个类以及它的派生类用来处理tornado web server收到的httprequest,目前为止还没有看到httpserver的代码,无责任随便猜测一下,一个htt...原创 2013-01-26 01:23:32 · 209 阅读 · 0 评论 -
tornado: web.py 之 Application
当初之所以突然捡起python以及体验tornado,源自忘了哪里看到的一篇文章,说tornado十一个简洁高效的web server以及框架,总共代码两千多行,所以懒人义无反顾的抱起来研究。上次说的那个Options还好,不小心打开了web.py,尼嘛,光这个一个文件就超过两千行(2.4.1),坑爹啊。。。谁乱说的来着?考虑到这个文件尼嘛太大了,所以分开研究,依旧是看点儿写点儿。。。...原创 2013-01-23 00:13:25 · 322 阅读 · 0 评论 -
动态语言就是动态语言,还是要改变思路。。
废话不说直接看这个例子,请注意Dumper这个类的实现,好吧,其实我说的是self.dump(msg)这一句。class DumpToScreen(object): def dump(self, msg): print "Message:", msg class Dumper(object): def log(self, msg):...原创 2013-02-20 14:24:58 · 172 阅读 · 0 评论