pythonWeb主流框架分析
什么是web框架?
Web 框架主要用于网站开发。开发者在基于 Web 框架实现自己的业务逻辑。Web 框架实现了很多功能,为实现业务逻辑提供了一套通用方法。
使用 Web 框架,很多的业务逻辑外的功能不需要自己再去完善,而是使用框架已有的功能就可以。Web 框架使得在进行 网站开发的时候,减少了工作量。
Web 框架主要用于网站开发,可以实现数据的交互和业务功能的完善。使用 Web 框架进行 网站开发的时候,在进行数据缓存、数据库访问、数据安全校验等方面,不需要自己再重新实现,而是将业务逻辑相关的代码写入框架就可以。
常见的pythonWeb框架有哪些?
Django
优点:
- 具备全面的功能,包括ORM、模板引擎、路由、管理后台等,使用者只需要集中精力编写业务代码。
- 强大的自带管理后台,可快速构建管理界面。
- 可以与大多数关系型数据库集成,并有良好的ORM,通过ORM可以快速的构建和维护数据库表数据。
- Django提供的许多插件可以在开发Web应用程序时加速开发流程。
- 完善的文档与社区,拥有众多优秀的插件、模块等。
缺点:
- 重量级框架,包括一些轻量级应用不需要的功能模块,不如 Flask 轻便。
- 过度封装很多类和方法,直接使用比较简单,但改动起来比较困难。
- 相比于 C,C++ 性能,Djang 性能偏低。
- 对异步IO的支持不够好
Flask
优 点:
- 轻量级。提供 Web 服务器支持,不提供全栈开发支持。Flask 非常轻量、非常简单,基于它搭建 Web 系统都以分钟来计时,特别适合小微原型系统的开发。
- 可以使用自己选择的数据库和ORM,也可以灵活使用不同的扩展包实现不同的功能。
- 相对其他框架,API的开发速度更快,而且请求速度更快。
花少时间、产生可用系统,使用Flask是非常划算的选择。
缺 点:
- 无自带管理后台,所有的内容都需要从0开始进行构建。
- 对于大型网站开发,需要设计路由映射的规则,否则容易导致代码混乱。对新手来说,容易使用低质量的代码创建 “不良的 web 应用程序”。
FastAPI
优点:
- 强大的数据验证器,使用Pydantic库,可以自动生成API数据结构。
- 异步请求中的高性能和低延迟,使用异步处理程序可提高API性能。
- 快速的文档生成器,可为其定义的API自动生成完整的文档。
- 集成模型构建器和Builtin SQL数据库(SQLAlchemy)。
缺点:
- 相对于其他两者,自带功能较少,需要获取第三方库来实现某些功能。
- 安全性问题(由于自动文档,API发现功能可能会导致潜在的安全漏洞)。
Tornado
优 点:
- 基于异步网络功能库的 Web 开发框架,因此,它能支持几万个开放连接,Web 服务高效稳定。可见,Tornado 适合高并发场景下的 Web 系统。
缺 点:
- 不支持python2
- 灵活性较差
除此之外,还有各类python框架,但都大同小异。
总体来看
- Django 属于重量级框架,内置模块较为丰富,适用于中大型项目
- Flask 属于轻量级框架,仅提供最基本的web服务,适用于小微项目
- FastAPI 属于轻量级框架,如果需要构建一个快速高效性能的API,以支持多用户的请求,那么使用FastAPI是更好的选择
- Tornado 属于专业性框架, 为应对高并发场景而生,适用于对于高并发有需求的python项目