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项目
相关推荐
算法小白(真小白)2 小时前
低代码软件搭建自学第二天——构建拖拽功能
python·低代码·pyqt
唐小旭2 小时前
服务器建立-错误:pyenv环境建立后python版本不对
运维·服务器·python
007php0072 小时前
Go语言zero项目部署后启动失败问题分析与解决
java·服务器·网络·python·golang·php·ai编程
Chinese Red Guest2 小时前
python
开发语言·python·pygame
骑个小蜗牛3 小时前
Python 标准库:string——字符串操作
python
黄公子学安全5 小时前
Java的基础概念(一)
java·开发语言·python
程序员一诺6 小时前
【Python使用】嘿马python高级进阶全体系教程第10篇:静态Web服务器-返回固定页面数据,1. 开发自己的静态Web服务器【附代码文档】
后端·python
小木_.6 小时前
【Python 图片下载器】一款专门为爬虫制作的图片下载器,多线程下载,速度快,支持续传/图片缩放/图片压缩/图片转换
爬虫·python·学习·分享·批量下载·图片下载器
Jiude6 小时前
算法题题解记录——双变量问题的 “枚举右,维护左”
python·算法·面试