- 浏览: 246265 次
-
最新评论
-
bluky999:
中间的兼职例子很逗 哈哈哈
tornado: web.py 之 Application -
flingfox63:
学习了,详细,赞个
Ruby变量作用域的类目录结构 -
zhou6711411:
不知是版本问题还是怎么的
class A
...
Ruby变量作用域的类目录结构 -
t284299773:
你在方法中定义方法就相当于在方法中调用lambda!
Ruby变量作用域的类目录结构(补二) -
lnj888:
很是有用 不错Powerpoint converter
一个简单的link_to,ROR到底在背后做了些什么?(未完)
文章列表
// Functions can see changes in variable values after the function is defined
var myFunction = function() {
var foo = "hello";
var myFn = function() {
console.log( foo );
};
foo = "world";
return myFn;
};
var f = myFunction();
f(); // &qu ...
尼嘛我死活没法在手机上调试, adb device永远显示offline。。。折腾了一晚上在一个邮件组中发现有人说手机4.2.2升级后android sdk也要升级,否则可能有问题。我的sdk是最天升级的,不会有问题,但是我ubuntu默认的adb是通过apt-get install android-tool-adb安装的。跑到sdk的安装目录试了一下sdk自带的adb,没问题了。。。。我操。。。。。一晚上时间啊。。。。。。
RT。就是小贵。先搞一个free trial看看。限制32k,尼玛一个hello world也就差不多了。。
http://xamarin.com/
废话不说直接看这个例子,请注意Dumper这个类的实现,好吧,其实我说的是self.dump(msg)这一句。
class DumpToScreen(object):
def dump(self, msg):
print "Message:", msg
class Dumper(object):
def log(self, msg):
self.dump(msg)
class ErrorHandler(Dumper, DumpToScreen):
def dump ...
HTTPClient是httpclient.py中看到的第一个类。内容非常简单,但是却又没有看上去那么简单:
fetch方法的实现会根据构造HTTPClient时传入的参数(async_client_class)发生变化。也就是说,HTTPClient并不是一个interface,而是一个delegator
每一 ...
Python的mro
- 博客分类:
- python
一个python的super和mro问题今天让我纠结了一早上,源自于看tornado的源代码对于super这个“方法”产生的困惑,对于老鸟mro应该是常识了,对于小白而言,尼玛搞懂这个掉了我好几根头发。
谷歌了一下找到一篇博客也在讨论这个问题,博主列举了一个例子我觉得很典型,同时他也提出了和我一样的问题,我在原文的引用中高亮了。下面摘自“JohnsonGuo的专栏”:
有一天某同事设计了一个相对复杂的类体系结构(我们先不要管这个类体系设计得是否合理,仅把这个例子作为一个题目来研究就好),代码如代码段4:
代码段4:
class A(object): def _ ...
tornado: IOLoop
- 博客分类:
- Tornado边看边写
小白说在前面:“俺一没任何unix/linux基础(就会安装个程序啥的),二基本没有python的基础(话说年前给我一个简单的python程序俺都看不懂)。所以碰到ioloop这个涉及到线程/信号/EPOLL之流底层知识的时候彻底土鳖,所以边猜 ...
其实process.py里面只有一个重头fork_processes
看到这里其实源自看到netutil里面的TCPServer.start方法:“可以根据参数启动多个tornado进程”,start方法的源代码如下(注释已去):
def start(self, num_processes=1):
assert not self._started
self._started = True
if num_processes != 1:
process.fork_processes(num_proces ...
最近不是在学习tornado嘛,随手bing了一把,找到一篇很好的文章,放到这里留做记录。 全文转载自“上善若水”的博客。 http://blog.csdn.net/goldlevi/article/details/7047726
最近在做项目,使用了Tornado这个用python写的由Facebook开源出来的web服务器框架。这确实是一个轻量级的框架,只需要几行代码,直接运行脚本,就可以建立起一个server了。Tornado使用了epoll方式,在linux环境下,用了epoll的,总是受到更多的关注,呵呵。这比我们销售短信项目中使用的c++ Poco库使用的poll模型效率要 ...
HttpServer的父类是TCPServer,而且从实现来看,默认只是简单的重载了handle_stream这个方法,而已。 HttpServer的构造函数里面,最重要的是request_callback,也就是说,当一个request进来的时候,怎么处理。 拿blog这个例子来说,Application干的就是这个事情。
HttpServer这个简单的类后面,则是TCPServer这不大不小的一坨。。。
几个比较重要的方法,挑出来看看:
listen:
只做了两件事,
bind_sockets。 针对于给定的address/host,端口,产生一个或者一系列 ...
一个简单的调用顺序(只包含了重要的方法):
On IOLoop.READ triggered:
1. TCPServer._handle_connection
2. HTTPServer.handle_stream
3. HTTPConnection.__init__
4. HTTPConnection._on_headers
5. HTTPConeection._on_request_body
6. Application.__call__
7. RequestHandler._execute
8. RequestHandler(or anyother child of i ...
template中的_parse方法是模板文法的解析器,而这个文件中一坨一坨的各种node以及block,就是解析结果的承载者,也就是说在经过parse处理过后,我们输入的tornado的html模板就变成了各种block的集合。
这些block和node的祖宗就是这 ...
template中的文法分析基本上就在这个里面了。。三脚猫水平画图,海涵。。
第一个有意思的是RedirectHandler,它的代码和思路都比较有趣,代码很短,直接看:
class RedirectHandler(RequestHandler):
"""Redirects the client to the given URL for all GET requests.
You should provide the keyword argument "url" to the handler, e.g.::
application = web.Application ...
小半个晚上只干了一件事,研究web.py里面的authenticated方法。
先看这个函数的注释:
"""Decorate methods with this to require that the user be logged in."""
所以基本这个很清楚了,假设你有一个handler, ...