Django和Flask框架优缺点对比


Posted in Python onOctober 24, 2019

Flask 在 Django 之后发布,现阶段有大量的插件和扩展满足不同需要 Django发布于2005年,Flask创始于2010年年中。

Django功能大而全,Flask只包含基本的配置, Django的一站式解决的思路,能让开发者不用在开发之前不用花费大量时间在选择应用的基础设施。

Django有模板,表单,路由,认证,基本的数据库管理等等内建功能。与之相反,Flask只是一个内核,默认依赖于两个外部库: Jinja2 模板引擎和 Werkzeug WSGI 工具集,其他很多功能都是以扩展的形式进行嵌入使用。

Flask 比 Django 更灵活 用Flask来构建应用之前,选择组件的时候会给开发者带来更多的灵活性 ,可能有的应用场景不适合使用一个标准的ORM(Object-Relational Mapping 对象关联映射),或者需要与不同的工作流和模板系统交互。

一、整体设计方面

首先,两者都是非常优秀的框架。整体来讲,两者设计的哲学是区别最大的地方。

Django提供一站式的解决方案,从模板、ORM、Session、Authentication等等都分配好了,app, admin后台生成, 使用非常方便.

Flask只提供了一些核心功能,非常简洁优雅。它是一个微框架,其他的由扩展提供,但它的blueprint使它也能够很方便的进行水平扩展。

二、路由设计

Django的路由设计是采用集中处理的方法,利用正则匹配。Flask也能这么做,但更多的是使用装饰器的形式,这个有优点也有缺点,优点是读源码时看到函数就知道怎么用的,缺点是一旦源码比较长,你要查路由就不太方便了,但这也促使你去思考如何更合理的安排代码。

三、应用模块化设计

Django的模块化是集成在命令里的,也就是说一开始Django的目标就是为以后玩大了做准备的。每个都是一个独立的模块,为以后的复用提供了便利。

Flask通过Blueprint来提供模块化,自己对项目结构划分成不同的模块进行组织。

四、配置

Django的配置主要还是靠settings.py来做,当然为了Development和Production环境分离,还有一些方法来处理配置。
Flask的配置很灵活,有多种方法配置,不同环境的配置也非常方便。

五、文档

两者都提供了详尽的文档,Flask的文档风格很受我个人喜好,Django的文档也非常优秀,当时用学Django时,就是只看了Django的文档。

六、社区

Django社区很大,各种插件很齐全,大部分情况下你都能找到你想要的。

Flask起步晚,但社区也不小,之前有一次看在github上的star数,两个相差并不远,说明越来越多的人关注它,虽然插件没那么全,但常用的还都是有的,而且质量都比较高。

最后再次说一下,两个都是非常优秀的框架,很多时候选用这些框架是根据实际项目侧重不同来选的:-)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
flask中使用SQLAlchemy进行辅助开发的代码
Feb 10 Python
实例讲解Python的函数闭包使用中应注意的问题
Jun 20 Python
Python中关于Sequence切片的下标问题详解
Jun 15 Python
python如何使用unittest测试接口
Apr 04 Python
Python Web编程之WSGI协议简介
Jul 18 Python
python如何求解两数的最大公约数
Sep 27 Python
python3 selenium自动化 下拉框定位的例子
Aug 23 Python
python实现两个字典合并,两个list合并
Dec 02 Python
详解python实现可视化的MD5、sha256哈希加密小工具
Sep 14 Python
OpenCV+python实现膨胀和腐蚀的示例
Dec 21 Python
Python3+Django get/post请求实现教程详解
Feb 16 Python
解决pycharm下载库时出现Failed to install package的问题
Sep 04 Python
python命令 -u参数用法解析
Oct 24 #Python
使用python制作游戏下载进度条的代码(程序说明见注释)
Oct 24 #Python
用Python解数独的方法示例
Oct 24 #Python
Python3 sys.argv[ ]用法详解
Oct 24 #Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
Oct 24 #Python
原生python实现knn分类算法
Oct 24 #Python
python KNN算法实现鸢尾花数据集分类
Oct 24 #Python
You might like
php 在线打包_支持子目录
2008/06/28 PHP
ie6 动态缩略图不显示的原因
2009/06/21 PHP
浅析php创建者模式
2014/11/25 PHP
php实现json编码的方法
2015/07/30 PHP
PHP异常类及异常处理操作实例详解
2018/12/19 PHP
非常不错的功能强大代码简单的管理菜单美化版
2008/07/09 Javascript
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
vue 进阶之实现父子组件间的传值
2019/04/26 Javascript
Vue实现todo应用的示例
2021/02/20 Vue.js
python使用scrapy解析js示例
2014/01/23 Python
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
PyCharm搭建Spark开发环境的实现步骤
2019/09/05 Python
python 字典的打印实现
2019/09/26 Python
如何理解Python中包的引入
2020/05/29 Python
opencv 实现特定颜色线条提取与定位操作
2020/06/02 Python
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
配件采购员岗位职责
2013/12/03 职场文书
高三政治教学反思
2014/02/06 职场文书
职务说明书范文
2014/05/07 职场文书
2015年文明创建工作总结
2015/04/30 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书
Vue实现动态查询规则生成组件
2021/05/27 Vue.js