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 相关文章推荐
python获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
python中函数默认值使用注意点详解
Jun 01 Python
详解Python中的from..import绝对导入语句
Jun 21 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
Apr 20 Python
Django中的ajax请求
Oct 19 Python
python 解压pkl文件的方法
Oct 25 Python
Django数据库连接丢失问题的解决方法
Dec 29 Python
python继承threading.Thread实现有返回值的子类实例
May 02 Python
在Django中自定义filter并在template中的使用详解
May 19 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 Python
解析python 中/ 和 % 和 //(地板除)
Jun 28 Python
python list等分并从等分的子集中随机选取一个数
Nov 16 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运行模式的深入理解
2013/06/03 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
2014/01/26 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
详解js跨域原理以及2种解决方案
2015/12/09 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
2017/11/15 Javascript
微信上传视频文件提示(推荐)
2018/11/22 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
python之PyMongo使用总结
2017/05/26 Python
python清理子进程机制剖析
2017/11/23 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
行政经理的岗位职责
2013/11/23 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
人事专员岗位说明书
2014/07/29 职场文书
工伤事故赔偿协议书范文
2014/09/24 职场文书
2014年团支部工作总结
2014/11/17 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
导游词之上海豫园
2019/10/24 职场文书
HTTP中的Content-type详解
2022/01/18 HTML / CSS
VUE解决跨域问题Access to XMLHttpRequest at
2022/05/06 Vue.js