Python是一种非常多才多艺的编程语言,它允许我们轻松执行复杂任务。在本教程中,我们将了解用于构建API的常用Python框架。在此之前,让我们了解一下什么是API以及它是如何工作的。

什么是API?

API是Application Programming Interface的缩写,它是一种软件中介,用于实现两个应用程序之间的通信。例如,我们从在线购物门户购买产品并使用API进行支付。

让我们来看一个现实世界的例子,假设你在一家餐厅,拿着菜单准备点菜。厨房就像一个“系统”,会准备你点的食物,但厨房怎么知道你点了什么,或者你如何与厨师沟通以制作你的订单呢?

这时候,等待员API就登场了。等待员会将你的点菜请求送到厨房,系统会准备食物,然后等待员会将食物送回来。

构建API的顶级框架

有许多框架可用,但并非所有框架都适用于API。以下是一些流行且重要的框架。

1. Django Rest Framework

Django REST是一个强大的基于Django的框架,开发人员使用它来创建API。在Django REST中,REST代表表现状态传输。它用于数据通信的基于Web的体系结构。HTTP请求用于在机器之间进行调用。Django REST框架中使用了四种标准方法:GET、PUT、POST和DELETE。

它提供了创建丰富API的最简单方式。我们可以使用PIP命令安装Django REST框架。要使用Django REST框架,Python版本应为3.5+,并且系统必须安装Django。

Django REST特点 -

  • 全球各地拥有庞大的活跃社区。
  • 它受到组织的信任,如Red Hat、Mozilla和Heroku。
  • 它还提供了测试、调试和缓存的支持。
  • 对Django的URL路由提供自动支持。
  • 构建复杂API所需的代码较少。

缺点

  • 默认工具众多,对新手来说学习难度较大。
  • 由于缺乏适当的指导,新项目可能会遇到包装组件方面的问题。

2. Flask REST Framework

Flask REST框架与Django REST框架类似。它用于快速构建API。Flask以轻量级项目而闻名,只需要少量代码即可构建API。

借助这个框架,开发人员可以轻松创建API,并且不断添加新功能到Flask REST框架中。

Flask RESTful特点 -

  • Flask是非常轻量级的框架,容易安装。
  • 它提供了用于处理威胁的默认安全性,如注入攻击、数据完整性检查等。
  • 提供了添加自定义字段和基于数据类型的输入的功能。
  • 提供了支持其他表示形式(如XML、CSV、HTML)的representation()装饰器。
  • marsal_with()装饰器用于数据格式化。

缺点

  • 不能用于较大的MVC项目。
  • 尽管Flask非常灵活,但早期的自定义可能会延迟扩展和生产。

3. Falcon

Falcon是一个高性能的Web框架,用于构建大规模应用程序后端和微服务。我们可以使用面向对象和基于类的接口开发API。它与多个服务器高度兼容。

Falcon于2013年由Kurt Griffiths开发。虽然有广泛的社区提供有价值的意见,但Falcon关注质量控制。

Falcon特点 -

  • 它是轻量级的,需要最少的设置。
  • 提供快速开发。
  • 集成了NoSQL
  • 提供了内置服务器和用于开发的调试器。
  • 提供了出色的性能。

缺点

  • 不适合HTML页面。
  • 缺少内置Web服务器。
  • 其文档相对较不全面,与像django和flask这样的其他框架相比。

4. Pyramid

Pyramid是一个混合型Web框架,充当Django和Flask之间的桥梁。它可用于两种类型的项目,既不太大也不太小。Django通过Twitter和Google Group跟踪Pyramid的进展。Pyramid的开发人员不断致力于其发展,自首次发布以来已发布了十个版本。Pyramid的当前版本是1.10。

Pyramid特点 -

  • Pyramid用于文件构建,因此以不容易出错的方式打包。它为新手提供了一种安全网。
  • 支持所有Python版本。
  • 允许开发人员通过插件进行强大的API、URL映射和高度可扩展性。
  • 用户可以创建相当大的项目模板。
  • Pyramid带有名为pcreate的引导工具,它与基于SQLAlchemy和ZODB的众多模板兼容。

缺点 -

  • 其模板语法可能相对复杂。
  • 从Django迁移到XHTML结构可能会感到陌生和复杂。

5. FastAPI

顾名思义,FastAPI是用于构建API的最快和高性能的Python框架。该框架可以以200到300%的速度开发API。其社区正在迅速增长。它基于ASGI,主要用于构建异步Web应用程序。

  • 交互式API文档
  • 减少代码的重复
  • 高度安全且具有内置身份验证
  • 无限支持插件
  • 具有直观的编辑器支持(VSCode/PyCharm),具有自动完成功能。

缺点

  • 请求验证需要花费大量时间。
  • 主文件比较拥挤。
  • 依赖注入中没有单例。

6. Eve

Eve框架是基于Flask和Cerberus构建的。它使API的开发变得简单而快速。它可以轻松创建可自定义的REST Web服务。Eve通常用于中等规模的项目。Nicola Iarocci于2013年初开发了这个框架,自首次发布以来已经更新了33次。

Eve特点 -

  • 默认支持过滤、排序、资源分页和HATEOAS。
  • 支持完整的CRUD操作范围。
  • 支持CORS(跨源资源共享)。
  • 具有高级功能,如SQL数据库、MongoDB、ElasticSearch和Neo4j等。

缺点

  • 适用于中等规模项目,无法处理大型项目。
  • 寻找合适的扩展可能需要一些时间。

7. CherryPy

CherryPy是一种极简主义的Web框架,它是面向对象的,并且符合HTTP/1.1标准。CherryPy的主要目标是提供快速开发。它缩小了所有源代码库。它由Remi Delon开发,于2002年发布。现在由CherryPy社区维护。Netflix这家领先的视频流媒体公司使用CherryPy来构建选择项目的基础。

CherryPy特点 -

  • 面向对象编程减少了开发时间,也减小了代码库的大小。
  • 它具有用于身份验证、静态内容、缓存和会话的内置工具。
  • 它可以为动态和用户相关内容提供服务。
  • 它提供了对JSON的内置支持。

缺点

  • 会话可能不会默认启用。
  • 如果页面处理程序没有正确编写,具有权限的用户可以访问任何文件。

8. Cornice

Cornice是Pyramid的REST框架,提供了构建REST Web服务的帮助程序。它在可能的情况下自动处理HTTP规范。

Cornice特点

  • 消息中提供了三个字段 - 发件人、内容、颜色(红色或黑色)。
  • 添加消息是通过身份验证完成的。
  • Cornice中的一个路径等于一个服务。
  • 支持为所有路由添加URL前缀。

缺点

  • 消息只能使用单个通道。
  • 如果已经注册了具有相同名称的用户,他/她无法注册。
  • 所有消息和用户都存储在内存中。

结论

本教程包括了创建API广泛使用的最流行的框架。每个框架都有其优点和缺点,用户可以根据自己的需求选择其中任何一个。

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程