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项目
相关推荐
云空20 分钟前
《Python 与 SQLite:强大的数据库组合》
数据库·python·sqlite
凤枭香1 小时前
Python OpenCV 傅里叶变换
开发语言·图像处理·python·opencv
测试杂货铺1 小时前
外包干了2年,快要废了。。
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
艾派森1 小时前
大数据分析案例-基于随机森林算法的智能手机价格预测模型
人工智能·python·随机森林·机器学习·数据挖掘
小码的头发丝、2 小时前
Django中ListView 和 DetailView类的区别
数据库·python·django
Chef_Chen2 小时前
从0开始机器学习--Day17--神经网络反向传播作业
python·神经网络·机器学习
千澜空3 小时前
celery在django项目中实现并发任务和定时任务
python·django·celery·定时任务·异步任务
斯凯利.瑞恩3 小时前
Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户附数据代码
python·决策树·随机森林
yannan201903133 小时前
【算法】(Python)动态规划
python·算法·动态规划
蒙娜丽宁3 小时前
《Python OpenCV从菜鸟到高手》——零基础进阶,开启图像处理与计算机视觉的大门!
python·opencv·计算机视觉