Django功能大而全,Flask只包含基本的配置, Django的一站式解决的思路,能让开发者不用在开发以前不用花费大量时间在选择应用的基础设施。Django有模板,表单,路由,认证,基本的数据库管理等等内建功能。与之相反,Flask只是一个内核,默认依赖于两个外部库: Jinja2 模板引擎和 Werkzeug WSGI 工具集,其余不少功能都是以扩展的形式进行嵌入使用。html
Flask 比 Django 更灵活 用Flask来构建应用以前,选择组件的时候会给开发者带来更多的灵活性 ,可能有的应用场景不适合使用一个标准的ORM(Object-Relational Mapping 对象关联映射),或者须要与不一样的工做流和模板系统交互。git
1、总体设计方面
首先,二者都是很是优秀的框架。总体来说,二者设计的哲学是区别最大的地方。
Django提供一站式的解决方案,从模板、ORM、Session、Authentication等等都分配好了,app, admin后台生成, 使用很是方便.
Flask只提供了一些核心功能,很是简洁优雅。它是一个微框架,其余的由扩展提供,但它的blueprint使它也可以很方便的进行水平扩展。github
2、路由设计
Django的路由设计是采用集中处理的方法,利用正则匹配。Flask也能这么作,但更多的是使用装饰器的形式,这个有优势也有缺点,优势是读源码时看到函数就知道怎么用的,缺点是一旦源码比较长,你要查路由就不太方便了,但这也促使你去思考如何更合理的安排代码。数据库
3、应用模块化设计
Django的模块化是集成在命令里的,也就是说一开始Django的目标就是为之后玩大了作准备的。每一个都是一个独立的模块,为之后的复用提供了便利。
Flask经过Blueprint来提供模块化,本身对项目结构划分红不一样的模块进行组织。app
4、配置
Django的配置主要仍是靠settings.py来作,固然为了Development和Production环境分离,还有一些方法来处理配置。
Flask的配置很灵活,有多种方法配置,不一样环境的配置也很是方便。框架
5、文档
二者都提供了详尽的文档,Flask的文档风格很受我我的喜爱,Django的文档也很是优秀,当时用学Django时,就是只看了Django的文档。模块化
6、社区
Django社区很大,各类插件很齐全,大部分状况下你都能找到你想要的。
Flask起步晚,但社区也不小,以前有一次看在github上的star数,两个相差并不远,说明愈来愈多的人关注它,虽然插件没那么全,但经常使用的还都是有的,并且质量都比较高。
最后再次说一下,两个都是很是优秀的框架,不少时候选用这些框架是根据实际项目侧重不一样来选的:-)函数
总结比较好:https://www.cnblogs.com/crss/p/8532950.html工具