Django,Flask ,Tornado,FastAPI 四个主流框架怎么选?

在这里插入图片描述

前言

首先我们达成一个共识,框架是用来帮助我们提升效率,节省时间,避免处理那些低级细节的,如果能达到这个目标,就是一个合适的框架。选择合适的框架,会事半功倍。
Python 领域,开发 Web 应用程序的四个主流框架是 Django、Flask 、FastAPI和Tornado。它们都非常优秀,但有各自的特点。本文接下来阐述每个框架的优缺点,以帮助你在使用时做出最合适的选择。

一、Django

Django 是用于构建网站的免费开源 Web 开发框架。它于 2003 年创建,并使用 MTV 模式,也就是 Model-Template-View 模式,如果不使用 Django 的模版语法,也可以认为是 MVC 模式,即 Model-View-Controler,对应三个文件:models.py, views.py, urls.py。

它以其健壮和简单的特性而广受欢迎,地位相当于 Java 领域的 Spring,并被 Instagram,Youtube 等技术巨头使用,找工作面试,Django 也是重头戏。Django 非常流行,极客时间已经有专门的付费教程。其次它的设计哲学与 Python 非常搭配,鼓励代码复用。

  • 优点

Django 框架的代码结构统一且清晰易懂,开发人员可以像做填空题一样添加更多功能,也可以设计自定义的类或接口,即简单也不失灵活性、扩展性。
Django 生态还有一个利器就是 Django Rest Framework(DRF),DRF 可以让你轻松搭建具有 REST 风格的 API,由于它具有模块化和可自定义的架构,在前后端分离的趋势下,使用 Django 构建 Web API 也非常容易。
自带安全性的中间件。Django 通过提供针对联合 SQL 注入和跨站点请求伪造攻击的防御来提供安全性的访问。
Django 生态非常丰富,第三方类适配的类库也非常多,这意味着遇到问题时你并不孤单。

  • 项目推荐:

Layui版本:https://gitee.com/djangoadmin/DjangoAdmin_Django_Layui
ElementUI+Vue版本:https://gitee.com/djangoadmin/DjangoAdmin_Django_EleVue
AntDesign+Vue版本:https://gitee.com/djangoadmin/DjangoAdmin_Django_AntdVue

二、Flask

Flask 是一个用 Python 编写的微型 Web 框架,可用于开发简约的 Web 应用程序。Flask 带有诸如模板引擎,缓存和身份验证之类的选项。

它的创建是为了使用 Python 编程语言构建 Web 应用程序。它被设计为易用,快速并且可以扩展成为复杂的应用程序或微服务。

Flask 更像是创作者 Armin Ronacher 在 4 月 1 日对愚人节的恶作剧,在其中依赖了Werkzeug 和 Jinja。令人惊讶的是,它受到了社区的赞赏,这使他们在此方面做得更多。

  • 优点

管理仪表板,基于照片的验证,用于发送用户通知的电子邮件系统等
Flask 允许进行单元测试,并且由于其内置的开发服务器,集成的支持等,因此可以通过对一些扩展进行调整来过渡到 Web 框架。
Flask 简单易用,非常适合初学者使用,为开发人员提供了更好地学习和理解它的空间。它还使开发人员可以毫不费力地快速创建应用程序。

三、Tornado

Tornado是Facebook开源出来的框架,其哲学跟Django近乎两个极端。

Tornado是异步框架Tornado基本上只算有MVC中C这一层。

轻量、异步非阻塞IO处理方式、出色的抗负载能力、协程带来优异的处理性能。

  • 优点

少而精(轻量级框架)
注重性能优越,速度快
解决高并发(请求处理是基于回调的非阻塞调用)
异步非阻塞。
websockets 长连接。
内嵌了HTTP服务器。
单线程的异步网络程序,默认启动时根据CPU数量运行多个实例;利用CPU多核的优势。
自定义模块。

四、FastAPI

FastAPI 是用于构建 Web API 的现代、开源、快速、高性能的 Web 框架,它基于Python 3.6+ 标准类型提示,支持异步,正如它的名字,FastAPI 就是为构建快速的 API 而生。

  • 优点

自动类型检查。这意味着更少的 Bug,即使在深度嵌套的 JSON 请求中,Fast API 也会验证开发人员的数据类型。
集众所长,站在巨人的肩膀上。FastAPI 建立在 JSON Schema(用于验证JSON数据结构的工具),OAuth 2.0(用于授权的行业标准协议)和OpenAPI(这是可公开获得的应用程序编程接口)之类的标准之上。
现代化。FastAPI 使使用称为 graphene-python 的 Python 库轻松构建 GraphQL API 。
快速、高性能。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: DjangoFlaskTornado都是Python Web框架,但它们有不同的设计理念和适用场景。 Django是一个全功能的Web框架,它提供了许多内置的功能,如ORM、模板引擎、表单处理、管理后台等,适用于大型Web应用程序的开发。 Flask是一个轻量级的Web框架,它提供了基本的功能,如路由、请求和响应处理、模板引擎等,适用于小型Web应用程序的开发。 Tornado是一个异步的Web框架,它使用非阻塞的I/O和事件循环来提高性能,适用于高并发的Web应用程序的开发。 因此,择哪个框架取决于项目的需求和规模。 ### 回答2: DjangoFlaskTornado 都是常用的 Python Web 框架,但它们之间有许多不同之处。在比较这三个框架时,可以根据以下几个方面进行对比: 1. 应用场景 Django 是一个重量级框架,适合于大型 Web 应用程序的开发。它提供了许多工具和功能,包括 ORM、模板引擎、表单处理、安全性等等。它的开发速度快,可扩展性强,因此适合于大型、复杂、高流量的网站。 Flask 是一个轻量级框架,适合于小型 Web 应用程序或原型的开发。它的设计简单、灵活,支持插件式开发,因此可以快速搭建简单的 Web 应用程序。 Tornado 是一个异步框架,适合于高并发、高性能的 Web 应用程序。它支持异步 IO,同时也提供了类似 Django 的 ORM、模板引擎等功能,因此它既可以用于高性能的 Web 应用程序,也可以用于大型项目。 2. 开发速度 Django 的开发速度相对较慢,因为它提供了许多功能和工具,需要花费更多的时间来配置和调试。Flask 的开发速度比 Django 快,因为它的设计更简单、更灵活,可以快速搭建原型。Tornado 的开发速度与 Flask 类似,但由于其异步 IO 的特性,可以在高并发的情况下更好地发挥性能优势。 3. 可扩展性 Django 提供了许多功能和工具,因此具有很高的可扩展性,可以轻松地用于大型、复杂的项目。Flask 的设计简单、灵活,可以用插件式的方式进行开发,因此具有很高的灵活性和可扩展性。Tornado 的异步 IO 特性使其具有很高的可扩展性,可以轻松地处理高并发、高性能的 Web 应用程序。 4. 学习难度 相对于 FlaskTornadoDjango 的学习难度较高,因为它提供了许多功能和工具,需要花费更多的时间来学习。FlaskTornado 的学习难度相对较低,因为它们的设计比较简单,更容易上手。 综上所述,DjangoFlaskTornado 都有各自的优点,可以根据项目需求择适合的框架。如果项目规模较大,复杂度较高,可以Django;如果项目规模较小,需要快速原型开发,可以Flask;如果项目需要具有高并发、高性能的特性,可以Tornado。 ### 回答3: DjangoFlaskTornado都是Python web开发框架,虽然都可以用于web开发,但在功能、用途、性能等方面都有所不同。下面是它们的对比: 功能: Django是一个大而全的框架,集成了ORM、模板引擎、管理后台、路由系统等强大功能,适合用于构建复杂的web应用。 Flask相对于Django来说就比较轻量级,它可以根据需要使用插件,方便快捷构建一些小型web应用,例如blog、中小型网站等。 Tornado则不同于前两者,它是一个异步的web框架,支持长连接、websocket等高并发操作,适用于像聊天室、实时通讯等需要高并发的应用场景。 用途: Django适合用于大而复杂的系统的开发,例如知名的Instagram、Pinterest等都是由Django构建。 Flask则兼顾了快速开发和可拓展性,适合搭建小型应用,例如单页面应用、简单的API等。 Tornado则适用于高并发、高性能的web应用,例如像Facebook Chat、知名网站Foursquare以及电子商务平台Groupon、Zapier等。 性能: Django相对于其他两种框架来说性能表现较低,但不影响其在大型系统中的地位。 Flask相对于Django,由于轻量级框架所带来的优势,也表现出不错的性能。 Tornado则是三种框架中性能最强大的一个,由于其异步的特性,可以更好地负载压力,应对高并发的请求。 总结: 三种框架各有其特点和适用场景。Django适用于大规模的应用系统,Flask适用于中小型的应用和API服务,Tornado适用于高并发场景。开发者可以结合自己的需求进行择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值