Django、Flask、Tornado、FastAPI 的选择
Django
优点:
- Django 框架的代码结构统一且清晰易懂,开发人员可以像做填空题一样添加更多功能,也可以设计自定义的类或接口,即简单也不失灵活性、扩展性。
- Django 生态还有一个利器就是 Django Rest Framework(DRF),DRF 可以让你轻松搭建具有 REST 风格的 API,由于它具有模块化和可自定义的架构,在前后端分离的趋势下,使用 Django 构建 Web API 也非常容易。
- 自带安全性的中间件。Django 通过提供针对联合 SQL 注入和跨站点请求伪造攻击的防御来提供安全性的访问。
- Django 生态非常丰富,第三方类适配的类库也非常多,这意味着遇到问题时你并不孤单。
缺点:
- Django Models 没有 mixins,只有简单的继承。
- Django 使用的 ORM 是在 SQLAlchemy 之前创建的,因此 Django ORM 的灵活性较差,因此它不如 SQLAlchemy。
应用:
- 高负荷预订引擎。
- 购物平台。
- 学校管理系统。
- 内置用于内部数据的自定义 CRM 系统。
- 支持基于 Web 的应用程序的 IOS 和 Android 应用程序。
- 管理仪表板,基于照片的验证,用于发送用户通知的电子邮件系统等。
Flask
优点:
- Flask 允许进行单元测试,并且由于其内置的开发服务器,集成的支持等,因此可以通过对一些扩展进行调整来过渡到 Web 框架。
- Flask 简单易用,非常适合初学者使用,为开发人员提供了更好地学习和理解它的空间。它还使开发人员可以毫不费力地快速创建应用程序。
缺点:
- Flask 的很多模块由第三方开发,容易引起安全漏洞。
- Flask 具有一个单一的来源,表示它将依次处理每个请求,因此,无论有多少个请求,它仍然会轮流处理它们,这会耗费更多时间。
- 如果开发人员水平不高,更容易使用低质量的代码创建一个不良的 Web 应用程序。
应用:
Tornado
优点:
- 少而精(轻量级框架)。
- 注重性能优越,速度快。
- 解决高并发(请求处理是基于回调的非阻塞调用)。
- 异步非阻塞。
- websockets 长连接。
- 内嵌了 HTTP 服务器。
- 单线程的异步网络程序,默认启动时根据 CPU 数量运行多个实例;利用 CPU 多核的优势。
- 自定义模块。
缺点:
应用:
FastAPI
优点:
- 自动类型检查。这意味着更少的 Bug,即使在深度嵌套的 JSON 请求中,Fast API 也会验证开发人员的数据类型。
- 集众所长,站在巨人的肩膀上。FastAPI 建立在 JSON Schema(用于验证 JSON 数据结构的工具),OAuth 2.0(用于授权的行业标准协议)和 OpenAPI(这是可公开获得的应用程序编程接口)之类的标准之上。
- 现代化。FastAPI 使使用称为 graphene-python 的 Python 库轻松构建 GraphQL API 。
- 快速、高性能。可以和 NodeJS 和 Go 相提并论。
缺点:
应用:
- FastAPI 适用于构建高性能的 API,本身支持异步,如果要构建异步 API,可以优先选择 FastAPI。Netflix 将其用于内部危机管理。它还可以在部署准备就绪的机器学习模型时完美缩放,因为当 ML 模型封装在 REST API 并部署在微服务中时,它在生产中会发挥最佳作用。
原文地址:https://blog.csdn.net/weixin_44204857/article/details/127620666
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_38434.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。