我用过pyramid和flask, 用在一个项目上,先用的pyramid后用的flask.
性能:
没有比对过两者性能,但两者应该在一个数量级,都是基于wsgi的,和tornado肯定不能比,你懂的。
路由:
都支持通过装饰器模式注册路由,都支持函数或者类注册路由
两者有区别,p将具体url记在一个字符串里,再用该字符串注册路由
Flask就直接用@
app.get注册,或者用blueprint
模版
两者默认模版不同,废话!jinjia更流行,都支持第三方的模版,
另外,pyramid支持json的render,你只要返回dict就帮你生成json了,而且render是在装饰器里的,也就是你的应用只需要返回数据即可,flask需要显示调用render_template()函数,若要返回json你需要显示调用jsonify,我把它搞成和pyramid一样,用装饰器实现。当然这个区别也决定了单元测试的不同。
测试
Pyramid,无论你用什么模版,返回的是dict,所以你主要测试dict就行了,而且是针对注册的url的函数或类直接引用测试,而非通过具体的客户端环境测试。
Flask无法做到,需要测试真正得到的文本数据,因为它是在一个模拟的客户端请求上下文产生的。
项目比较小,而且是年前的,会有疏漏,ipad打字花了我半小时,希望对大家有帮助