搜索
首页后端开发Python教程在 Python 中使用 API:实用指南

摘录:
“API 使软件应用程序模块化。它们加快了软件开发时间”。

应用程序编程接口(或 API)是一个抽象层,可实现不同软件应用程序和组件之间的通信。这种沟通是如何发生的? Web API 恰好是我们将在本文中详细讨论的内容,它位于客户端使用的软件应用程序和存储信息的数据库之间。请在此处了解不同类型的 API。通信的发生与编写各个软件应用程序所使用的编程语言无关;无论是 Python、Java、JavaScript 等。只要从软件应用程序发送到 API 的请求有效,无论是检索、更新、删除还是创建操作。

想象一下像 Instagram 这样的社交媒体平台,其中特定用户发布了一张图片,内部发生的情况是用户正在向规定的 Instagram API 端点发出 POST 请求;发送图片到数据库。另一个用户可以通过向 API 发出 GET 请求来查看该帖子,而在滚动时间轴时甚至不知道这一点。您会看到那里存在通过 API 进行的通信。

即使两个用户通过 API 使用不同语言编写的软件应用程序进行通信,情况也可能如此。
下图显示了两个不同的软件应用程序通过 API 进行通信。

Working with APIs in Python: A Practical Guide

作者照片

此外,API 使软件应用程序模块化。它们加快了软件开发时间。模块化是指 API 实现与我们的代码库分离,我们只需调用 API。它加快了开发时间,因为我们不必从头开始编写提供与 API 类似的功能的代码,我们只需调用它即可。

在本文中,您将学习如何使用 Python 使用公开可用的 API。敬请关注。

先决条件

本文适合初级 Python 程序员,他们希望通过 Python 中的具体实现来加深对 API 的理解。
要一起练习,请确保您的机器已连接到互联网。

本文也可以作为经验丰富的 Python 开发人员的复习工具。

目标

读完本文后,您应该:
了解 Python 中的 requests 库。
了解如何发出 GET、PUT、PATCH、DELETE 和 POST 请求。
了解如何在代码中存储和利用从 API 调用接收到的数据。

了解请求库

requests 是下载次数最多的 Python 软件包之一,根据 pypi 的数据,每周下载量约为 3000 万次。它使您能够在 Python 中轻松发送 HTTP 请求。 requests 是一个经过测试且值得信赖的 Python 包,被 IBM 等许多知名品牌所使用。在这里找到源代码。
请求的一些“受人喜爱”的功能是:

  • 保持活动状态和连接池

  • 国际域名和 URL

  • 具有 Cookie 持久性的会话

  • 浏览器式 SSL 验证

  • 自动内容解码

  • 基本/摘要式身份验证

  • 优雅的键/值 Cookie

  • 自动解压

  • Unicode 响应体

  • HTTP(S) 代理支持

  • 分段文件上传

  • 流式下载

  • 连接超时

  • 分块请求

  • .netrc 支持

请求入门

我假设您的计算机上已经安装了 Python。按照以下说明安装 requests 包:
在 Linux 或 Mac OS 上打开终端并执行以下操作:

python3 -m pip install requests

在 Windows 上:

python -m pip install requests

这会将 请求包下载到您的计算机。

发出 GET 请求

发出 GET 请求来检索现有数据。它返回一个对象,可以进一步探索该对象,以通过调用其所需属性来获取有关所发出请求的更多详细信息。请参阅下面的示例用法:

  • 创建一个Python文件,例如get_request.py,在文件中写入以下代码:
# Import the requests module
import requests

# Making a simple GET request
response_object = requests.get("https://jsonplaceholder.typicode.com/posts")

从response_object中,可以调用不同的属性:
status_code: 响应的 HTTP 状态代码。

  • .text:响应正文作为字符串。
  • .json():将响应正文解析为 JSON(如果适用)。
  • .content:作为原始字节的响应正文。
  • .headers:响应头的字典。
  • .cookies:服务器设置的Cookie。
  • .url:重定向后的最终URL。
  • .已过去 在本文中,我们将更多地关注 .json() 属性。 在 requests.py 文件中,调用 response_object 上的 .json() 属性
json_data = response_object.json()
print(json_data)

返回的 JSON 存储在 json_data 变量中,可以在您的程序中使用。
以下内容将输出到您的控制台。

Working with APIs in Python: A Practical Guide

发出 POST 请求

POST 请求将数据发送到指定端点,创建一条新记录。与寻求检索现有数据的 GET 方法不同。请按照以下步骤发出帖子请求:

  • 创建一个名为 post_request.py 或任何方便的名称的新文件。在文件中写入以下代码:
python3 -m pip install requests

这会将数据发送到规定的端点,并返回一个响应对象;该对象拥有有关发送的 POST 请求的一些有用信息。可以通过调用对象上合适的属性来访问它。
调用响应对象上的 status_code 属性以确保操作成功。更新您的代码。

python -m pip install requests

它返回 201,这表明您的 POST 请求成功并且已创建新资源。如下图所示。

Working with APIs in Python: A Practical Guide

发出 PUT 请求

PUT 请求涉及用新记录替换现有记录;它从发送者或客户端获取新数据并用它替换现有数据。
这是发出 PUT 请求的方式:

  • 创建一个新的Python文件,在本文中,我们使用put_request.py。在其中写入以下代码。
# Import the requests module
import requests

# Making a simple GET request
response_object = requests.get("https://jsonplaceholder.typicode.com/posts")

发出 DELETE 请求

这确保删除特定记录或数据。要删除的记录始终通过其唯一 ID 来指定,该 ID 通常是指定的。
这是执行 DELETE 操作的方式:

  • 创建一个新的 Python 文件,在本文中,我们使用 delete_request.py。在其中写入以下代码:
json_data = response_object.json()
print(json_data)

发出 PATCH 请求

每当您想要对现有记录或数据进行部分更改时,请使用 PATCH 方法。

  • 创建一个新的Python文件,在本文中,我们使用patch_request.py。在其中写入以下代码:
# Import the requests module
import requests


# Making a simple POST request


data = {'userId': 1, 'id': 1, 'title': 'This is for POST request', \
        'body': 'This body is modified for this technical writing article by Augustine Alul'}
response_object = requests.post("https://jsonplaceholder.typicode.com/posts/", data=data)


print(response_object.status_code)

结论

requests 库提供了一种在 Python 代码中发出 HTTP 请求的简单方法;它可以轻松地与 API 进行交互,并返回一个对象,该对象通过简单地调用所需的属性(可以在文章中找到这些属性)来提供有关所发出请求的有用信息。
在 Python 中使用 API 从未如此简单 - 还有其他流行的库可用于与 Python 中的 API 交互,但选择 requests 库是因为它的简单性。
感谢您坚持阅读本文的结尾,这为您开始使用 Python 中的 API 提供了良好的背景。

以上是在 Python 中使用 API:实用指南的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
什么是Python Switch语句?什么是Python Switch语句?Apr 30, 2025 pm 02:08 PM

本文讨论了Python版本3.10中介绍的新“匹配”语句,该语句与其他语言相同。它增强了代码的可读性,并为传统的if-elif-el提供了性能优势

Python中有什么例外组?Python中有什么例外组?Apr 30, 2025 pm 02:07 PM

Python 3.11中的异常组允许同时处理多个异常,从而改善了并发场景和复杂操作中的错误管理。

Python中的功能注释是什么?Python中的功能注释是什么?Apr 30, 2025 pm 02:06 PM

Python中的功能注释将元数据添加到函数中,以进行类型检查,文档和IDE支持。它们增强了代码的可读性,维护,并且在API开发,数据科学和图书馆创建中至关重要。

Python的单位测试是什么?Python的单位测试是什么?Apr 30, 2025 pm 02:05 PM

本文讨论了Python中的单位测试,其好处以及如何有效编写它们。它突出显示了诸如UNITSEST和PYTEST等工具进行测试。

Python中的访问说明符是什么?Python中的访问说明符是什么?Apr 30, 2025 pm 02:03 PM

文章讨论了Python中的访问说明符,这些说明符使用命名惯例表明班级成员的可见性,而不是严格的执法。

Python中的__Init __()是什么?自我如何在其中发挥作用?Python中的__Init __()是什么?自我如何在其中发挥作用?Apr 30, 2025 pm 02:02 PM

文章讨论了Python的\ _ \ _ Init \ _ \ _()方法和Self在初始化对象属性中的作用。还涵盖了其他类方法和继承对\ _ \ _ Init \ _ \ _()的影响。

python中的@classmethod,@staticmethod和实例方法有什么区别?python中的@classmethod,@staticmethod和实例方法有什么区别?Apr 30, 2025 pm 02:01 PM

本文讨论了python中@classmethod,@staticmethod和实例方法之间的差异,详细介绍了它们的属性,用例和好处。它说明了如何根据所需功能选择正确的方法类型和DA

您如何将元素附加到Python数组?您如何将元素附加到Python数组?Apr 30, 2025 am 12:19 AM

Inpython,YouAppendElementStoAlistusingTheAppend()方法。1)useappend()forsingleelements:my_list.append(4).2)useextend()orextend()或= formultiplelements:my_list.extend.extend(emote_list)ormy_list = [4,5,6] .3)useInsert()forspefificpositions:my_list.insert(1,5).beaware

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具