终于有时间把django底层代码过了一遍…

django有的服务会在server启动的时候跑,而且只跑一次,这样每次请求的时候就不用跑些多余的数据了~

启动的时候会根据是用mod_python还是fastcgi而选用不同的 handlers来处理请求,当然这里就可以自己定制server了~ 呵呵~
启动后就是socket,使用线程或fork一个进程来处理请求就看启动方式了
还有一个autoreload的开关,都知道有的时候代码更新了~ 但怎么刷新页面就是没有改变,如果要无缝更新的话就把这个autoreload开关打开,但性能会有所影响

对应的每次请求会根据urlconf来调度到相应的函数,在调用相应函数之前或之后都会调用middleware(中间件),这些中间件是全局的~ 注意的地方就是middleware有相互顺序依赖,谁先谁后都要事先设计好~

django也不是没有缺点,个人认为middleware还有发展空间~目前的middleware是全局的,就是说不管你调用那个view/controller都会调用这些middleware,当然熟悉底层代码可以稍微更改下~ 我正尝试改呢~ 哈哈~ 发现很好玩~

目前PHP框架并没有像django这样的框架,可能是php不需要~ 不过我想对于django这样的框架在PHP”开源”业界还是有发展空间的,目前php的框架都是请求结束后释放所有数据,然后接受请求的时候再重新初始化数据处理数据… 有机会自己写一个底层框架,借鉴django的想法,不过我想在一些大公司,应该存在这样的框架了的~ 一定的,比如腾讯我想会有… 只是我猜的~ 呵呵

This entry was posted on 星期一, 八月 3rd, 2009 at 10:45 下午 and is filed under django, python. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

One Response to “终于有时间把django底层代码过了一遍…”

snow 三月 10th, 2010 at 4:54 下午

这个。。。真佩服你的耐心
我最怕看代码了
我觉得php还是不要依赖框架比较好,如果真加上n多中间件会很慢的。。。

Leave a Reply