本文目录导航:
- 请请问Django与Flask这两种PythonWeb框架,哪一个国际更盛行?
- Django和Flask这两个框架在设计上各方面有什么优缺陷
- Python Web框架哪家强? Django vs Flask深度对比
请请问Django与Flask这两种PythonWeb框架,哪一个国际更盛行?
DjangoDjango是基于两边件的一个大型框架。
框架自身的内容相当丰盛,基础局部:模版引擎、ORM、表单、路由散发这些标配,还有不少的两边件:登陆、后盾治理,这些还是官网两边件,另外还有不少的第三方两边件。
关于第三方的我没有具体钻研过,品质不太好评论。
还有由ROR带起的基于命令的Web开发方式和裁减、还有内建的数据库迁徙,基本上你呢想到的Django都有。
可以说Django和Python相当婚配,前者是Web开发的万金油,后者是开发畛域的万金油。
另外Django这个框架自身还有一个专门的基金会,这个基金会是由Django的母公司成立的,预计有不少用这个框架的公司也对期捐助过。
框架自身相当生动,每隔大略8个月就有一个大版本。
社区也是相当生动,官网的Community、非官网(StackOverflow)和IRC(听说IRC是比任何一个开源名目都要生动)基本上你碰到的疑问大家都会有处置或许Workout计划。
FlaskFLASK框架自身只蕴含路由散发,恳求和照应的封装和插件系统,在加上作者自己的Werkzeug(处置WSGI)、jinja2(模板引擎)和Flask-SQLAlchemy裁减(Model层),这几个同一个作者的名目造成一个完整的MVC框架。
关于Flask自身,一个微框架,这曾经足够了,而且它也只能提供这么多。
假设你须要表单处置,请装置Flask-WTF;假设你须要基于命令的开发形式,请装置Flask-script和Flask-CLI(这是一个Flask1.0的backport模块);假设你要登陆验证,请装Flask-Login;假设你要后盾治理,请装Flask-Admin。
什么?!你所有都要?请装Django。
对Flask就是这么一个框架。
这是一个典型的社区名目,作者在成功了一个牛X的外围以后,就放手交给社区。
各个插件的文档扩散(虽然Flask曾经出了一本书,试图买通各个插件和Flask相关,然而当须要真正经常使用的时刻,查文档还是须要在不同的Chrometab外面切换),而且社区插件的品质、支持和生动度也须要话很大的力量去确认。
Flask这个名目毫无不懂是低劣的:完善的官网文档,具体的教程()还有一个牛X的作者作为光环加持(这里可以看到作者有不少运行宽泛的名目)。
然而和Django完全不在一个运行层面,我会在下一段作出比拟和说明。
而且Flask这个名目基本曾经处于沉睡期,最新的版本0.10.1是2013年颁布的,名目的代码仓库也是比拟低的生动度(大略是一个月10次左右的Commit和PR),1.0的颁布从2014年到2016年不时说要颁布,不时没有进去。
各个插件降级也是逗留在2015年中。
和Django比拟生动度确实令人捉急。
Flask和Django的运行场景鉴于Flask和Django的特点,假设你是开发一个RESTAPI的系统,没有复杂的分层和逻辑的话,Flask会是一个不错的选择,由于框架内建的性能曾经足够你成功这个义务;又或许,你是计划成功一个大型的系统,须要自己从新成功大局部插件的内容,Flask也还是不错,由于它足够的繁难,能让你极速的读懂和裁减。
其余的状况我还是介绍你用回Django。
尤其是当你须要装置少量的Flask插件,去成功Django原本就有的性能时,你就应该看法到你须要丢弃Flask。
当然这只是团体的看法,也没有相对这一说,重要还是看你想在框架上破费多少的期间。
Django和Flask这两个框架在设计上各方面有什么优缺陷
一、全体设计方面首先,两者都是十分低劣的框架。
全体来讲,两者设计的哲学是区别最大的中央。
Django提供一站式的处置计划,从模板、ORM、Session、Authentication等等都调配好了,连app划分都做好了,总之,为你做尽量多的事件,而且还有一个killer级的特性,就是它的admin,配合django-suit,后盾就进去了,其实最后Django就是由在资讯颁布公司上班的人设计的。
Flask只提供了一些外围性能,十分繁复优雅。
它是一个微框架,其余的由裁减提供,但它的blueprint使它也能够很繁难的启动水平裁减。
二、路由设计Django的路由设计是驳回集中处置的方法,应用正则婚配。
Flask也能这么做,但更多的是经常使用装璜器的方式,这个有好处也有缺陷,好处是读源码时看到函数就知道怎样用的,缺陷是一旦源码比拟长,你要查路由就不太繁难了,但这也促使你去思索如何更正当的布置代码。
三、运行模块化设计Django的模块化是集成在命令里的,也就是说一开局Django的指标就是为以后玩大了做预备的。
每个都是一个独立的模块,为以后的复用提供了便利。
Flask经过Blueprint来提供模块化,自己对名目结构划分红不同的模块启动组织。
四、性能Django的性能重要还是靠来做,当然为了Development和Production环境分别,还有一些方法来处感性能。
Flask的性能很灵敏,有多种方法性能,不同环境的性能也十分繁难。
五、文档两者都提供了详尽的文档,Flask的文档格调很受我团体喜好,Django的文档也十分低劣,过后用学Django时,就是只看了Django的文档。
六、社区Django社区很大,各种插件很完全,大局部状况下你都能找到你想要的。
Flask起步晚,但社区也不小,之前有一次性看在github上的star数,两个相差并不远,说明越来越多的人关注它,虽然插件没那么全,但罕用的还都是有的,而且品质都比拟高。
最后再次说一下,两个都是十分低劣的框架,很多时刻选择这些框架是依据实践名目并重不同来选的:-)
Python Web框架哪家强? Django vs Flask深度对比
关于新入门的Web开发者,面临的一个困扰是选择一个不会过期的Python框架。
Django和Flask是Python Web开发的抢手选择,虽然Tornado、Pyramid等也有存在,但它们的盛行度难以逾越。
本文将深度对比这两个框架,以协助你做选择。
首先,Flask以其轻量级和灵敏性著称,2010年由Armin Ronacher开发。
Flask更像是一个基础框架,外围性能繁难,不蕴含ORM、认证等,经过裁减如Flask-Mail、Flask-Login和Flask-SQLAlchemy来增强。
它的模块化设计准许开发者依据须要选择数据库,如MySQL或NoSQL。
Django相比之下,是一特性能丰盛的“大而全”框架,2005年颁布。
它蕴含MVT架构、ORM、用户认证、权限治理等,自带Admin治理后盾,实用于企业级网站开发。
Django支持SQLite、MySQL和PostgreSQL等多种数据库,且自带的工具套件更为片面。
在盛行度上,Flask和Django旗鼓相当,Flask在GitHub上的星数稍高,但思索到Django更早颁布,两者均被宽泛运行于Web开发,如Pinterest、Disqus等选择Django,而Flask罕用于API开发,如Twilio和Netflix。
性能方面,两者性能相当,虽然Django因其组件多或许被误以为较慢,但实践测试显示差异不大。
在名目结构上,Django有固定形式,而Flask更灵敏,或许造成前期保养艰巨,但遵照介绍通常,两者结构相似。
文档和社区方面,Django的资源丰盛,社区规模较大,而Flask社区虽小但增长迅速。
在选择时,假设你须要轻量级或特定服务,Flask是现实选择;假设谋求企业级性能和团队单干,Django是适合之选。
每团体的偏好不同,所以,依据你的名目需求和团体喜好来定夺吧。
无论你偏差于哪个框架,宿愿这篇文章能为你提供有价值的参考。