从 fetch 到 requests:前端开发者如何用 Python 调 API

3 阅读7分钟

如果你是前端开发者,第一次用 Python 写 API 请求时,大概率会有一种熟悉又陌生的感觉。

熟悉,是因为“发请求、拿结果、处理 JSON”这条链路你早就见过。
陌生,是因为写法从浏览器环境切到了 Python 脚本环境。

我在补 AI 工程基础时,越来越强烈地感受到一件事:

前端开发者学 Python 调 API,其实没有想象中那么难。

需要特别指出的是,Python 的 requests 库默认是同步阻塞的。这和前端习惯的 async/await 异步非阻塞截然不同。你不需要写 await requests.get(),代码会在这里停下,直到请求返回。

因为从 fetchrequests,变的是语法,不变的是接口思维。

这篇文章想做一件很具体的事:把“前端开发者第一次用 Python 调 API”这件事,讲得不吓人、可迁移、能立刻上手。

适用读者

这篇文章主要适合:

  • 熟悉前端接口调用
  • fetchaxios
  • 刚开始接触 Python
  • 想为后续接大模型 API 做准备

如果你已经长期做 Python 后端开发,这篇文章更适合作为给团队新人或跨栈同学的入门材料。

结论前置

前端开发者学 Python 调 API 时,最重要的不是记住多少语法,而是先建立这条稳定链路:

  1. 发请求
  2. 看状态
  3. 解析 JSON
  4. 做异常处理
  5. 封装成函数

这条链路一旦建立,后面从普通 HTTP 接口过渡到大模型接口,会顺很多。

为什么 AI 工程一定绕不开 API

很多人刚开始学 AI,会把注意力都放在模型本身。
但从工程角度看,AI 工程师每天做的很多事情,其实都离不开 API:

  • 调用大模型
  • 调用 embedding 服务
  • 调用第三方数据服务
  • 调用自己的后端接口

所以如果不会用 Python 调 API,后面几乎所有 AI 实战都会卡住。

前端开发者其实已经会了一半

作为前端开发者,我们对下面这套流程并不陌生:

  1. 发请求
  2. 等响应
  3. 看状态
  4. 解析 JSON
  5. 把结果接进业务逻辑

在 JavaScript 里,最常见的写法可能是这样:

const res = await fetch("https://jsonplaceholder.typicode.com/todos/1");
const data = await res.json();
console.log(data.title);

而在 Python 里,对应思路其实非常接近:

import requests

res = requests.get("https://jsonplaceholder.typicode.com/todos/1")
data = res.json()
print(data["title"])

你会发现,核心流程几乎没变。

这也是很多前端开发者切到 Python 后,会有一种奇妙感觉的原因:
“虽然语法长得不一样,但脑子里那条处理链路其实很熟。”

一张对照表:fetchrequests 怎么快速建立映射

前端里怎么想Python 里怎么做
fetch(url)requests.get(url)
fetch(url, { method: 'POST', body: JSON.stringify(data) })requests.post(url, json=data)
await res.json()res.json()
res.statusresponse.status_code
try/catchtry/except
接进页面状态接进脚本或后端逻辑

这张表特别适合刚切换语言时看。
它会帮你快速建立“熟悉感”,而不是一上来就被新语法打散节奏。

一个最小请求,应该理解什么

下面这段代码很短,但已经包含了几个非常关键的点:

import requests

url = "https://jsonplaceholder.typicode.com/todos/1"
response = requests.get(url)

print(response.status_code)
print(response.text)

你至少要理解这些事情:

  • requests.get(url) 是发起请求
  • status_code 是 HTTP 状态码
  • text 是返回的原始文本

然后下一步通常就是:

data = response.json()

这一步会把 JSON 响应转成 Python 里的 dictlist
而一旦走到这里,前面学过的 Python 数据结构就全部串起来了。

为什么异常处理不能省

在前端开发里,我们早就知道接口不会永远成功。
Python 里也是一样。

网络超时、服务报错、地址错误、返回异常,这些情况在真实项目里都很常见。

所以初学 API 调用时,一个很好的习惯就是尽早接受这件事:

异常处理不是锦上添花,而是工程意识的起点。

比如:

import requests

try:
    response = requests.get(url, timeout=5)
    response.raise_for_status()
    data = response.json()
    print(data)
except requests.RequestException as e:
    print("请求失败:", e)

这里至少包含了三个非常实用的习惯:

  • 设置 timeout
  • raise_for_status() 主动识别失败状态
  • try/except 做兜底

如果“调 API”像出门开车,那异常处理就像系安全带。
你当然可以不系,也不是每次都会出事,但一旦真的遇到问题,没有它就会很狼狈。

封装函数,是从练习到工程的分水岭

很多代码一开始能跑,但还不像工程代码。
而最容易让它跨过这条线的动作,就是封装函数。

比如:

import requests

def fetch_user(user_id):
    url = f"https://jsonplaceholder.typicode.com/users/{user_id}"

    try:
        response = requests.get(url, timeout=5)
        response.raise_for_status()
        return response.json()
    except requests.RequestException as e:
        print("请求失败:", e)
        return None

这段代码的价值不只是“更整齐”,而是它开始具备了复用性。

以后你把请求对象换成:

  • 用户接口
  • 商品接口
  • 大模型接口
  • 向量检索接口

整体结构都不会差太多。

一个很关键的认知变化:大模型 API 也只是 API

很多人一听“大模型接口”,会下意识觉得这是一个特别高深、特别不一样的东西。

其实从工程视角看,它依然遵循非常熟悉的节奏:

  1. 组织请求参数
  2. 发出 HTTP 请求
  3. 拿到 JSON 响应
  4. 解析字段
  5. 做错误处理
  6. 把结果交给业务逻辑

也就是说,当你练熟普通 API 调用时,本质上已经在为后面的 AI 开发铺路。

团队协作视角下,为什么这件事很重要

在团队里,“会调 API”不只是个人技能,它直接影响这些协作环节:

  • 联调效率
  • 问题定位速度
  • 错误信息沟通质量
  • 前后端与 AI 服务之间的边界清晰度

一个能稳定发请求、看状态码、读响应、做错误处理的人,往往能更快把问题说清楚,也更容易和后端、平台、算法同学协作。

常见误区

误区 1:能请求成功就算学会了

真正可用于工程协作的标准,不是“偶尔跑通”,而是能稳定处理失败场景、能快速定位问题。

误区 2:大模型 API 和普通 API 完全不同

从工程形态上看,它们依然共享大量相同模式:HTTP 请求、JSON 响应、错误处理、参数组织。

误区 3:先把代码写出来,异常处理以后再补

在真实协作中,很多沟通成本恰恰来自“失败时没有足够信息”,所以异常处理最好尽早建立。

给刚开始学的人一个最小行动清单

如果你今天刚开始学,我建议立刻做下面这 4 件小事:

  1. requests.get() 请求一个公开测试接口
  2. 打印 status_code
  3. response.json() 解析数据
  4. try/excepttimeout 给它加一层保护

只要这一步走通,后面你接大模型接口时,心理压力会小很多。

适用边界

这篇文章关注的是“入门和迁移思维”。
它没有深入展开这些内容:

  • 认证与鉴权细节
  • 异步请求和并发
  • Session、连接池、重试策略
  • 生产环境日志与监控

这些在后续工程化阶段依然重要,但不应该阻塞你先建立最基础的请求能力。

结语

fetchrequests,表面上是从 JavaScript 切换到 Python,实际上是在延续同一套接口思维。

对前端开发者来说,这是一条非常友好的过渡路径:

  • 你已经懂请求和响应
  • 你已经懂 JSON
  • 你已经懂接口失败要做兜底

现在要做的,只是把这些能力迁移到 Python 环境里。

而一旦这一步走通,后面无论是调用大模型、处理结构化输出,还是做 AI 工作流,都会自然很多。

所以如果你正在从前端开发转向 AI 工程,我会很推荐尽早把这件事练熟:

用 Python 调 API。

它看起来只是基础,但其实是后面很多 AI 能力的入口。