请问Django和Flask这两个框架在设计上各方面有什么优缺点?

请问Django和Flask这两个框架在设计上各方面有什么优缺点?


开心每一天1111
浏览 565回答 4
4回答

杨__羊羊

一、整体设计方面首先,两者都是非常优秀的框架。整体来讲,两者设计的哲学是区别最大的地方。Django提供一站式的解决方案,从模板、ORM、Session、Authentication等等都分配好了,连app划分都做好了,总之,为使用者做尽量多的事情,而且还有一个killer级的特性,就是它的admin,配合django-suit,后台就出来了,其实最初Django就是由在新闻发布公司工作的人设计的。Flask只提供了一些核心功能,非常简洁优雅。Flask是一个微框架,其他的由扩展提供,但Flask的blueprint使它也能够很方便的进行水平扩展。二、路由设计Django的路由设计是采用集中处理的方法,利用正则匹配。Flask也能这么做,但更多的是使用装饰器的形式,这个有优点也有缺点,优点是读源码时看到函数就知道怎么用的,缺点是一旦源码比较长,要查路由就不太方便了,但这也促使使用者去思考如何更合理的安排代码。三、应用模块化设计Django的模块化是集成在命令里的,也就是说一开始Django的目标就是为以后玩大了做准备的。每个都是一个独立的模块,为以后的复用提供了便利。Flask通过Blueprint来提供模块化,自己对项目结构划分成不同的模块进行组织。四、配置Django的配置主要还是靠settings.py来做,当然为了Development和Production环境分离,还有一些方法来处理配置。Flask的配置很灵活,有多种方法配置,不同环境的配置也非常方便。五、文档两者都提供了详尽的文档,Flask的文档风格很受大家欢迎,Django的文档也非常优秀,当时用学Django时,就是只看了Django的文档。六、社区Django社区很大,各种插件很齐全,大部分情况下都能找到想要的。Flask起步晚,但社区也不小,之前有一次看在github上的star数,两个相差并不远,说明越来越多的人关注它,虽然插件没那么全,但常用的还都是有的,而且质量都比较高。最后再次说一下,两个都是非常优秀的框架,很多时候选用这些框架是根据实际项目侧重不同来选的

犯罪嫌疑人X

(1)FlaskFlask确实很“轻”,不愧是Micro Framework,从Django转向Flask的开发者一定会如此感慨,除非二者均为深入使用过Flask自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库入门简单,即便没有多少web开发经验,也能很快做出网站非常适用于小型网站非常适用于开发web服务的API开发大型网站无压力,但代码架构需要自己设计,开发成本取决于开发者的能力和经验各方面性能均等于或优于DjangoDjango自带的或第三方的好评如潮的功能,Flask上总会找到与之类似第三方库Flask灵活开发,Python高手基本都会喜欢Flask,但对Django却可能褒贬不一Flask与关系型数据库的配合使用不弱于Django,而其与NoSQL数据库的配合远远优于DjangoFlask比Django更加Pythonic,与Python的philosophy更加吻合(2)DjangoDjango太重了,除了web框架,自带ORM和模板引擎,灵活和自由度不够高Django能开发小应用,但总会有“杀鸡焉用牛刀”的感觉Django的自带ORM非常优秀,综合评价略高于SQLAlchemyDjango自带的模板引擎简单好用,但其强大程度和综合评价略低于JinjaDjango自带ORM也使Django与关系型数据库耦合度过高,如果想使用MongoDB等NoSQL数据,需要选取合适的第三方库,且总感觉Django+SQL才是天生一对的搭配,Django+NoSQL砍掉了Django的半壁江山Django目前支持Jinja等非官方模板引擎Django自带的数据库管理app好评如潮Django非常适合企业级网站的开发:快速、靠谱、稳定Django成熟、稳定、完善,但相比于Flask,Django的整体生态相对封闭Django是Python web框架的先驱,用户多,第三方库最丰富,最好的Python库,如果不能直接用到Django中,也一定能找到与之对应的移植Django上手也比较容易,开发文档详细、完善,相关资料丰富

繁星点点滴滴

Django是基于中间件的一个大型框架。框架本身的内容相当丰富,基础部分:模版引擎、ORM、表单、路由分发这些标配,还有不少的中间件:登陆、后台管理,这些还是官方中间件,另外还有不少的第三方中间件。关于第三方的我没有详细研究过,质量不太好评论。还有由ROR带起的基于命令的Web开发方式和扩展、还有内建的数据库迁移,基本上你呢想到的Django都有。可以说Django和Python相当匹配,前者是Web开发的万金油,后者是开发领域的万金油。另外Django这个框架本身还有一个专门的基金会,这个基金会是由Django的母公司成立的,估计有不少用这个框架的公司也对期捐助过。框架本身相当活跃,每隔大概8个月就有一个大版本。社区也是相当活跃,官方的Community、非官方(StackOverflow)和IRC(据说IRC是比任何一个开源项目都要活跃)基本上你碰到的问题大家都会有解决或者Workout方案
打开App,查看更多内容
随时随地看视频慕课网APP