Home  >  Article  >  Backend Development  >  为什么 Flask 有那么多的好评?

为什么 Flask 有那么多的好评?

WBOY
WBOYOriginal
2016-06-06 16:22:151257browse

有说吸收了很多好的思想,谁能分析分析,最好能从通用的角度分析,不要局限在语言,框架上

回复内容:

Flask 的作者 Armin Ronacher 很早就开发了 Werkzeug 套件,用于开发高质量的 WSGI Application。后来推荐给 Bottle 作者的时候,Bottle 的作者非常执着于“单文件”和“无依赖”,拒绝了使用 Werkzeug。再后来 Armin Ronacher 基于 Werkzeug 开发了 Flask,并且压缩成了单个 py 文件,算是黑 Bottle 的一个小玩笑吧。真正溯源,Bottle 和 Flask 应该都是模仿 Ruby 的 Sinatra 吧……

后来 Flask 获得比 Bottle 更多的关注,个人推测是因为其开发和设计的实用主义作风。无论是 Unicode 支持(这块在 Python 2.x 下还挺疼的)还是 Message Flash 这样的小功能,Flask 都做的非常人性化。除此以外,可插拔的 Extension 机制和 Blueprint 等设计,都为项目从小发展到大的需求做了考虑。另外对于开发、测试 Web 应用中的一些优秀模式,Flask 维护团队在文档、邮件列表等处都非常努力地做了传播。

其实就算抛开 Flask 不说,Werkzeug 本身也是一个高质量的库。Flask 被开发出来,初衷也是展示如何用 Werkzeug 定制出一个 Web 框架。如果说要给 Flask 的设计多少多少好评,有木有想过这些好评也许是应该属于 Werkzeug 的呢 之前用过flask,大概来说,
一是看上去简单,对于有编程经验的人来说,上手很快。
二是文档很好。
三是很多扩展看上去也很合理。

。。。
后来的时候,发现其实也不简单,需要某些功能要使用插件也是要学习成本的,而且文档更分散。扩展的文档有的也不那么好,要去看源文件,甚至连很常用的,flask-sqlchemy。有的扩展不太给力,比如flask-mail的master分支不能在gae上用。
使用flask感觉还是很愉快的,如果说是为了折腾是一个很好的东西。如果是为了生产,django更值得信赖。 说一下我的使用感受,最初刚学python,先看的django,跟着官方文档做例子,有点无脑,配置多一些。
后来,学习了flask,也是看的官方文档,学的很舒服,微内核和可扩展对初学者也很有好处。
作为一名入门者,我觉得的,Flask更适合初学者,你可以自己实现一些功能,也可以使用丰富的扩展,这样可以避免只会使用扩展,而不懂原理的问题,灵活性完全在你自己手里。
还有,django和flask的文档都超赞的说~
其他学习资料django要比flask学习多一些 看过flask的入门文档.
相对与django而言, flask的入门文档简直人性.
我看django的tutorial, 每次都有新收获, 简直了.
所以flask上手快, 看完入门指南能立即有思路.
看完django入门文档, ... 呵呵

所以flask的学习曲线比django的要平滑很多. 这是很吸引人的.

------------
但是我用的是django... =_= Django太大了,文档说实话阅读性挺差的。
Tornado文档虽然也很不错,但是全英文把很多人都拒之门外(包括一开始接触Python框架的我)。
Flask文档非常人性,先来个入门指南建立一下信心,而且初期用到的指南里都提及了,框架虽然小,但是全啊,而且插件多得可怕,即插式的插件实在太方便了。
学到中途再读Flask源码的时候发现它源码写得实在良心,我一个第一次读框架源码的都能读得不错简直是业界良心。

不过现在准备转转Tornado了,发现Tornado虽然造轮子是常态但是框架提供的都是核心功能呀,二者都是良心。至于Django嘛- -我真不喜欢这个框架。 根据上面的回答小节,新手学习Flask、之后Django,然后Tornado,学以致用,技多鬼压床 1.开箱即用
2.低耦合
3.可扩展
4.文档完善
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn