跬步 On Coding

在Tornado中使用jinja2模版引擎的简单方法

参考

实现

为了让自己的开发工具都能得到统一,所以想着以后不管是用Tornado也好,Bottle也好,模版引擎都开始用jinja2,所以更新了RSS Factory使用的模版引擎。

Google了下Tornado使用jinja2的方法,发现大部分人的实现方法都是重写ReaquestHandlerender方法,这样的虽然比较简单但是不利于保持Tornado的完整性,所以我使用参考文章中的方法。

WSGI与Tornado想到的

Tornado

上周用tornado实现了RSS Factory,又从新学了下Tornado下的使用,再次看introduce to tornado发现以前看的只学到了Tornado的MVC,使用Tornado也只停留在表面,没有学到Tornado的精髓。这次又学到了不少,这里总结下。

长连接,WebSocket与异步事件循环

Web2.0时代产生了很多的实时通知需求,也就是Ajax请求特别多,最初是用轮询实现,但是对服务器的开销很大,所以产生了长连接轮询。

客户的也就是浏览器请求一个api,Tornado不会立即返回,而是等到有变化的时候返回,浏览器获取响应后,循环再请求api,这样就省掉了很多请求,而且实现了实时通知。

树莓派与XBMC

Raspberry Pi刚开卖的时候,我就买了,那时候买来就是为了玩Linux,装了Raspbian,写写Python程序,玩玩GPIO什么的,很Geek范,然后就放在角落里落灰了。

直到去年双11在淘宝抢了个天猫魔盒送给我姐,才发现原来在电视上看电影,看美剧真心比电脑爽多了。立马就买了个二手22寸显示器跟树莓派组合成网络电视。折腾了1年多这里总结我用XBMC的经验。

OpenELEC

支持Raspi的XBMC系统有OpenELEC,Raspbmc,XBian。一直以来都是用的OpenELEC,在支持XBMC的几个发行版中,OpenELEC是最快的。

OpenELEC 当前版本为6.0.6,下载: > http://mirror.overthewire.com.au/openelec/OpenELEC-RPi.arm-6.0.3.tar

使用MongoDB

参考

简介

MongoDB是一个流行的NoSQL数据库程序,MongoDB使用起来比较像关系数据库,比较容易上手,由于使用BSON(一种二进制的json)格式数据,所以能使用python原生的字典数据类型来存储,相比MySQL操作跟简单。

Memcached 优化 MySQL 查询

简介

跬步上线后,SAE后台显示云豆的消耗http与MySQL查询各占一半,正好SAE还支持Memcached,本着不用白不用的原则,为db.py加上了Memcached的缓存支持。

网站在并发不大的情况下,MySQL查询时间还感受不出来,但是如果并发大的化,MySQL会显著的降低响应速度,所以Memcached应运而生。

Memcached是一个分布式的内存key-value存储系统,由于数据保存在内存中所以查询速度非常快,一般作为其它数据的中间缓存层来使用。

对于SQL查询先以SQL语句为key查询Memcached,如果查到直接返回,如果没有再去查询MySQL,并把结果缓存到Memcached,下次再次查询时速度显著提升,因为Memcached的数据是保存在内存中的。