对于使用过的python web框架的小总结

对于使用过的python  web框架的小总结

我个人喜欢用flask框架

我最近主要使用的是Flask+Gevent+Gunicorn。在使用过程中Flask的好处有这么几个,我个人觉得啊。

1. Blueprint,神器一般的存在,项目组合非常restful。

2. 同样是Micro-Framework,Flask的extension以及utils都比bottle要完善,源码组织也更加清晰,单个文件的bottle连url_for都没提供,

何况Flask背后Werkzeug的各种工具,全局Session池Cache池等,

可以很轻松的做扩展,比如我就是写了个基于Redis的Session和Cache。

3. 细节,这个无法用定性的,我因为Hack需要(即便是Werkzeug也是非常……简单的)瞄了部分源码……比起各种缩进和空格糟糕的bottle,flask的代码风格我很是喜欢。

弊端

1. 性能,对于性能要求极致的人来说……flask的性能会比bottle低,而且threading local的设计,只有在Gevent环境下才会降低开销。

2. 简单,比如Server-side Session就需要自己动手实现一个,无论是Werkzeug自带的Session(Middleware)都不足矣支持我现在项目的线上环境。

3. Extension参差不齐,好的如官方推的SQLalchemy,csrf等…但,Flask-Admin这类的,又太坑爹了点吧……

从我个人来说,我喜欢用Gevent+Flask,Gevent的好处在于可以不用理会类似于Tornado的回调,而且对Gunicorn有原生Worker支持,这么久之后对于Mysql,MC,都有完善的异步IO解决方案。

Flask则是项目足够清晰,Django又大又沉,高层代码用Flask自带的即可,需要扩展就深入Werkzeug。


经过几个项目的锤炼,对于python的web框架不要太关注性能,顺手就行。

以前用flask,后来知道了tornado之后,就开始用tornado,项目越大越是感觉力不从心。 虽然他俩都是那种小型的框架,但是相比flask的插件更多更丰富 !    还是那句话,顺手就行 !



你可能感兴趣的:(nginx,django,flask,flask,flask,flask,tornado)