摘要:我相信很多开始做Python Web或者是学习Python Web的朋友,对以下3个web框架并不陌生,它们分别是Django、Flask和Tornado不得不说,目前Python是Django、Flask和Tornado三分天下,各有各的优缺点。 但最广为人知的无非是Django和Flask。Django的优缺点 占用市场最多的Django:Django起源于劳伦斯出版集团(一家新闻
我相信很多开始做Python Web或者是学习Python Web的朋友,对以下3个web框架并不陌生,它们分别是Django、Flask和Tornado不得不说,目前Python是Django、Flask和Tornado三分天下,各有各的优缺点。
但最广为人知的无非是Django和Flask。Django的优缺点
占用市场最多的Django:Django起源于劳伦斯出版集团(一家新闻媒体公司),基于更适合开发一些庞大项目,有开发团队协作开发的项目,更适合使用Django。
同时Django最大的优点也成了Django最大的缺点,庞大以及一些硬性规定就导致了Django最致命的缺点,对比Flask来说,Django实在是太庞大了。Flask的优缺点
Flask作为一个轻量级的Web框架,底层用Werkzeug开发,和Flask配套开发的Jinja2模板引擎,开始是模仿Django的模板语言而设计,直至后来Flask火热起来的时候,Jinja2的价值才被人们发现。
当然Flask最大的几个优点是:开发迅速,可自由定制,灵活小巧当然,Django的优点造就了它的缺点,对于Flask来说,Django更像CMS,可定制性弱,在Django里面,什么都集成了,无论是数据库还是后台管理,它都已经帮你做好了,你直接往里面填东西就行了。
对比Flask而言,除了Flask核心和Jinja2模板以外,其他的都没有,无论后台还是Bootstrap集成,对比Django,Flask就是一个光秃秃的核心,但是Flask也不强调开发者造轮子,因为在pip上面可以安装开发过程中所有可能用到的库,例如flask-bootstrap。
Flask在我眼里其实很完美,只是不适合需要快速开发的项目,例如大项目,时间是最大的成本。这也是Flask最大的缺点吧,并不适合需要快速开发并且复杂的项目。Tornado的优缺点
首先,我实际上并没有用过Tornado,“龙卷风?对不起,我没用过”但是我听过!所以我的标题为:如果转Python Web的开发者,要选择Flask还是Django?因为这两个web框架我都使用过话说它是来源于社交网站FriendFeed的实时信息服务开发而来的,在2007年由4名Google前软件工程师一起创办了FriendFeed网站,2009年FriendFeed被Facebook用5000万美元收购。
Tornado是一种异步非阻塞式web框架,开源并且它速度相当快,传说是唯一支持异步的一个Python web框架缺点嘛,没有Django和Flask火肯定是有它的原因的,或许是API太难用,或许是有致命缺陷?。
到底哪个框架更适合入门?首先Django和Flask的区别就好比PyQT和Tkinter,一个保罗万象,一个灵活小巧我的看法是:Flask更适合Python Web,尽管我第一个学习的是Django,不过Flask更符合Python特性,灵活小巧。
Django实在是太庞大了,应有尽有,我认为Django更像一个支持开发的CMS,无论你用没用到,Django都集成在它的API里,而且有一些傻瓜化操作(一键创建初始的MTV目录结构,而在Flask中,需要手动创建MVC目录,它只有初始的一些目录)。
So,如果您从没有接触过MVC设计模式,也没接触过WSGI,那么推荐您选择Flask它将是个不错的选择。斌哥说Python,只专注于Python技术!举报/反馈