Stephenzsky 2018-10-15
首先必须承认,Django还是Flask都是非常优秀Python web框架。他们设计哲学最大的区别在于:Django提供一站式的解决方案,从模板、ORM、Session、Authentication等等都分配好了。大而全,几乎涵盖了80%的网站开发应用,文档很全,插件很多,非常适合新手或者是快速原型开发。Flask只提供了一些核心功能,非常简洁优雅。它是一个微框架,其他的由扩展提供。灵活,快速是它的优势,但是很多时候需要自己建轮子,和NoSql配合使用。
下面分别从路由设计、应用模块化设计、配置、文档、社区这五个方面来详细说说这两者的区别:
路由设计:
Django的路由设计是采用集中处理的方法,利用正则匹配。Flask也能这么做,但更多的是使用装饰器的形式,这个有优点也有缺点,优点是读源码时看到函数就知道怎么用的,缺点是一旦源码比较长,你要查路由就不太方便了,但这也促使你去思考如何更合理的安排代码。
应用模块化设计:
Django的模块化是集成在命令里的,也就是说一开始Django的目标就是为以后玩大了做准备的。每个都是一个独立的模块,为以后的复用提供了便利。Flask通过Blueprint来提供模块化,自己对项目结构划分成不同的模块进行组织。
配置:
Django的配置主要还是靠settings.py来做,当然为了Development和Production环境分离,还有一些方法来处理配置。Flask的配置很灵活,有多种方法配置,不同环境的配置也非常方便。
文档:
两者都提供了详尽的文档。
社区:
Django社区很大,各种插件很齐全,大部分情况下你都能找到你想要的。Flask起步晚,但社区也不小,两者相差并不远,虽然插件没那么全,但常用的还都是有的,而且质量都比较高。
对于初学者来说,找到一个好的框架来学习或者项目开发都是非常有必要的,而当你有一定开发经验后,你应该选择适合当前业务需要的框架。
如果你想自己去设计目录结构,模块的划分等个性化设计时,推荐使用Flask。弊端也很明显,如果你不是一个经验丰富的开发者,你很可能会把整个项目架构设计的乱七八糟。很多时候一个项目刚开始并不觉得是个大项目,做到后面功能越来越多,扩展越来越多,就变成了一个大项目,而使用Flask就很容易的完成这个任务,小型项目快速开发,大项目设计灵活。
觉得文章有用大家可以尽情转发、收藏,获取更过编程干货欢迎大家关注我的头条号~