Jan 2 2015
花了一天时间把RSS Factory更新了下,把Tornado默认的模版引擎换为jinja2,解析html第三方库换为lxml。遇到了几个坑,纪录下。
自动转义
Tornado默认的模版引擎默认自动转义,Flask配置的jinja2也自动转义了,在Tornado中使用jinja2模版引擎的简单方法,按照这个方法模版渲染的时候却没有自动转义,所以还需要进一步配置。
application = tornado.web.Application(
template_loader=JinjaLoader(os.path.join(os.path.dirname(__file__), 'templates/'),
autoescape=True, extensions=['jinja2.ext.autoescape']),
)
Jan 2 2015
参考
前言
RSS Factory本来使用BeautifulSoup来解析xml,html。但是发现还有更好的第三份库lxml性能更好,使用更方便。
Jan 2 2015
参考
实现
为了让自己的开发工具都能得到统一,所以想着以后不管是用Tornado也好,Bottle也好,模版引擎都开始用jinja2,所以更新了RSS Factory使用的模版引擎。
Google了下Tornado使用jinja2的方法,发现大部分人的实现方法都是重写ReaquestHandle
的render
方法,这样的虽然比较简单但是不利于保持Tornado的完整性,所以我使用参考文章中的方法。
Dec 26 2014
Tornado
上周用tornado实现了RSS Factory,又从新学了下Tornado下的使用,再次看introduce to tornado发现以前看的只学到了Tornado的MVC,使用Tornado也只停留在表面,没有学到Tornado的精髓。这次又学到了不少,这里总结下。
长连接,WebSocket与异步事件循环
Web2.0时代产生了很多的实时通知需求,也就是Ajax请求特别多,最初是用轮询实现,但是对服务器的开销很大,所以产生了长连接轮询。
客户的也就是浏览器请求一个api,Tornado不会立即返回,而是等到有变化的时候返回,浏览器获取响应后,循环再请求api,这样就省掉了很多请求,而且实现了实时通知。
Nov 6 2014
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