共计 1634 个字符,预计需要花费 5 分钟才能阅读完成。
一、Flask 简介
1、概述
Flask 是一个轻量级的可定制框架,使用 Python 语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合 MVC 模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或 Web 服务的实现。另外,Flask 还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站
flask 中文网站:https://dormousehole.readthedocs.io/en/latest/
2、优缺点
主要特点小而轻, 原生组件几乎为 0, 三方提供的组件请参考 Django 非常全面, 属于短小精悍型框架
优点
简单,Flask 的路由以及路由函数由修饰器设定,开发人员不需要借助其他文件匹配
配置灵活,有多种方法配置,不同环境的配置也非常方便;环境部署简单,Flask 运行不需要借助其他任何软件,只需要安装了 Python 的 IDE,在命令行运行即可。只需要在 Python 中导入相应包即可满足所有需求
入门简单,通过官方指南便可以清楚的了解 Flask 的运行流程
低耦合,Flask 可以兼容多种数据库、模板
缺点
对于大型网站开发,需要设计路由映射的规则,否则导致代码混乱
二、Django 与 Flask 对比
Flask 在 Django 之后发布,现阶段有大量的插件和扩展满足不同需要 Django 发布于 2005 年,Flask 创始于 2010 年年中
Django 功能大而全,Flask 只包含基本的配置, Django 的一站式解决的思路,能让开发者不用在开发之前不用花费大量时间在选择应用的基础设施
Django 有模板,表单,路由,认证,基本的数据库管理等等内建功能。与之相反,Flask 只是一个内核,默认依赖于两个外部库:Jinja2 模板引擎和 Werkzeug WSGI 工具集,其他很多功能都是以扩展的形式进行嵌入使用
Flask 比 Django 更灵活 用 Flask 来构建应用之前,选择组件的时候会给开发者带来更多的灵活性,可能有的应用场景不适合使用一个标准的 ORM(Object-Relational Mapping 对象关联映射),或者需要与不同的工作流和模板系统交互
1、整体设计方面
首先,两者都是非常优秀的框架。整体来讲,两者设计的哲学是区别最大的地方
Django 提供一站式的解决方案,从模板、ORM、Session、Authentication 等等都分配好了,app, admin 后台生成, 使用非常方便
Flask 只提供了一些核心功能,非常简洁优雅。它是一个微框架,其他的由扩展提供,但它的 blueprint 使它也能够很方便的进行水平扩展
2、路由设计
Django 的路由设计是采用集中处理的方法,利用正则匹配。Flask 也能这么做,但更多的是使用装饰器的形式,这个有优点也有缺点,优点是读源码时看到函数就知道怎么用的,缺点是一旦源码比较长,你要查路由就不太方便了,但这也促使你去思考如何更合理的安排代码
3、应用模块化设计
Django 的模块化是集成在命令里的,也就是说一开始 Django 的目标就是为以后玩大了做准备的。每个都是一个独立的模块,为以后的复用提供了便利
Flask 通过 Blueprint 来提供模块化,自己对项目结构划分成不同的模块进行组织
4、配置
Django 的配置主要还是靠 settings.py 来做,当然为了 Development 和 Production 环境分离,还有一些方法来处理配置
Flask 的配置很灵活,有多种方法配置,不同环境的配置也非常方便
5、文档
两者都提供了详尽的文档,Flask 的文档风格很受我个人喜好,Django 的文档也非常优秀,当时用学 Django 时,就是只看了 Django 的文档
6、社区
Django 社区很大,各种插件很齐全,大部分情况下你都能找到你想要的。
Flask 起步晚,但社区也不小,两个相差并不远,常用的都有,而且质量都比较高