FastAPI入门:Python后端开发新手指南

智慧月亮
2025-06-18 05:27
阅读 456

开篇:认识FastAPI,开启你的后端之旅

开篇:认识FastAPI,开启你的后端之旅

你有没有想过,像抖音、微信这些应用背后的数据是怎么处理的?它们是如何快速响应用户操作的呢?其实,这背后有一个看不见的“大脑”——后端服务器。FastAPI 就是帮助我们快速搭建这个“大脑”的工具之一。

什么是FastAPI?

FastAPI 是一个用 Python 编写的现代 Web 框架,专门用来创建API接口(也就是应用程序和服务器之间沟通的方式)。它速度快、代码简洁、自动生成文档,非常适合初学者学习使用。

你可以把 FastAPI 当作一个智能助手,当你需要对外提供一些数据或者功能时,比如获取天气信息、登录账号、上传照片,它就能帮你把这些操作变成别人可以调用的接口。

FastAPI适合做什么?

  • 制作前后端分离网站的后端服务
  • 开发移动 App 所需的 API 接口
  • 快速搭建微服务系统
  • 实现数据可视化、数据分析类系统的接口层

接下来我们就从零开始,一步步带你走进 FastAPI 的世界!


环境准备:让一切从干净起步

环境准备:让一切从干净起步

工欲善其事,必先利其器。在正式动手写代码之前,我们需要准备好我们的开发环境。

安装Python

如果你还没安装 Python,请到官网 https://www.python.org 下载最新版 Python(建议版本3.7及以上)。安装过程中记得勾选 Add to PATH,这样就可以在命令行中直接使用 python 命令了。

验证是否安装成功:

python --version

输出类似:

Python 3.12.1

说明已经安装好了。

安装FastAPI和Uvicorn

FastAPI 本身是一个框架,但我们还需要一个运行它的工具,叫做 Uvicorn,它是基于 ASGI 协议的服务器。

我们可以使用 pip 来安装它们:

pip install fastapi uvicorn

安装完成后可以用以下命令验证:

uvicorn --version

如果看到类似信息:

Running uvicorn 0.25.0 with CPython 3.12.1 on Linux

恭喜!你已经准备好开始写了!


核心概念:用大白话理解关键知识

核心概念:用大白话理解关键知识

在正式开发前,有几个基础概念你需要了解:


1. 什么是API?

想象一下你在超市买水,你不直接去生产线取水瓶,而是走到收银台跟店员说:“我要一瓶矿泉水”,然后店员就把水交给你。这里的“我要一瓶矿泉水”就是一种请求,而店员返回给你水的动作就是响应

在编程的世界里,“店员”就是 API,它负责接收请求、执行任务、返回结果。比如你要查询今天北京的天气,你就会向天气服务发送请求,得到温度、风力等数据。


2. 什么是路由?

你可以把它理解为“导航路线”。当我们访问一个网址的时候,FastAPI会根据你访问的路径来决定该由谁处理请求。比如:

  • /hello 表示访问首页打招呼
  • /users/123 表示查看ID为123的用户资料
  • /create-user 可能表示创建用户

这些都是不同的“路径”,每个路径对应一段程序逻辑。


3. 启动服务器

我们平时写的 FastAPI 应用,本质上就是一个程序,但为了让外界访问,我们必须启动一个 HTTP 服务。这就相当于开一家便利店,营业之后别人才能进去买东西。

我们在后面会使用 uvicorn 来启动服务。


实战项目:用FastAPI写一个简单的天气查询服务

让我们通过一个小项目来实践所学内容,实现一个简单的“天气查询接口”。

第一步:新建项目文件夹

建议你为自己准备一个项目目录,例如:

/weather-project
  └── main.py

打开 main.py,开始编码。

第二步:最简单的Hello World

这是我们第一个接口,目标是当用户访问根目录 / 时,显示一句话。

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def say_hello():
    return {"message": "你好!欢迎使用我的天气查询服务"}

这段代码做了什么呢?

  • 引入 FastAPI 类并创建一个实例
  • 使用装饰器 @app.get("/") 表示这是一个 GET 请求的路由
  • 定义了一个函数,返回一个 JSON 数据

保存后运行启动命令:

uvicorn main:app --reload

现在打开浏览器,访问 http://localhost:8000,你会看到:

{
  "message": "你好!欢迎使用我的天气查询服务"
}

✅ 成功啦!接下来继续扩展功能。


第三步:增加天气接口

我们现在要添加一个 /weather/{city} 接口,接受城市名作为参数,并返回温度、湿度等信息。

@app.get("/weather/{city}")
def get_weather(city: str):
    # 这是一个模拟数据
    data = {
        "北京": {"temp": 26, "humidity": "50%", "condition": "晴"},
        "上海": {"temp": 30, "humidity": "70%", "condition": "多云"},
        "广州": {"temp": 34, "humidity": "80%", "condition": "雷阵雨"},
    }

    if city in data:
        return data[city]
    else:
        return {"error": "暂时不支持该城市的天气查询"}

保存后刷新浏览器,访问:

http://localhost:8000/weather/北京

你会看到:

{
  "temp": 26,
  "humidity": "50%",
  "condition": "晴"
}

访问一个不存在的城市试试看,看看有没有提示错误信息。


第四步:自动文档界面 Swagger UI 📚

FastAPI 最大的亮点之一就是自带文档系统。默认情况下,它会在 /docs 路径下生成一个交互式的 API 文档页面。

试着访问:http://localhost:8000/docs

你应该会看到这样的界面:

  • 每个 API 都列出来了
  • 有输入参数说明和试用框
  • 点击 Try it out → Execute 就可以直接测试接口

是不是很酷?这就是为什么很多人选择 FastAPI 的原因。


第五步:支持POST方法,让用户提交数据

我们再加一个功能:用户提供城市名称和经纬度,查询详细天气信息。我们使用 POST 方法来传递更复杂的数据。

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class LocationInput(BaseModel):
    city: str
    latitude: float
    longitude: float

@app.post("/location")
def show_location_info(loc: LocationInput):
    return {
        "收到的城市": loc.city,
        "经度": loc.longitude,
        "纬度": loc.latitude,
        "状态": "模拟天气信息已接收"
    }

现在访问 /docs,找到 /location 接口,点击 Try It Out,填写如下 JSON 示例:

{
  "city": "深圳",
  "latitude": 22.5431,
  "longitude": 114.0579
}

点击 Execute 发送请求,你会看到返回值中显示你刚才提交的内容。

🎉 我们完成了这个项目的基本功能!


常见问题解答 🔍

刚上手的朋友可能会遇到很多小问题,下面是一些高频提问。

Q1:启动服务时报错 “No module named ‘fastapi’”

这是没有安装 FastAPI 或者安装路径不对导致的。请重新运行安装命令:

pip install fastapi uvicorn

确认是否安装在正确的 Python 版本环境中,也可以尝试加上 pip3:

pip3 install fastapi uvicorn

Q2:浏览器打不开 localhost:8000,或出现Connection Refused

确保你的命令行中确实运行了 FastAPI 服务,且未被中断。如果仍然无法连接,检查电脑的防火墙设置是否阻止本地通信。


Q3:如何调试自己的代码?

建议使用 IDE 如 PyCharm 或 VSCode,它们都对 FastAPI 支持很好,可以直接运行调试模式。


学习建议:下一步怎么学?

你已经掌握 FastAPI 最基本的使用方式了,但后端开发还有很多值得深入的内容。以下是几个推荐学习方向:

  1. 数据库接入:学会连接 MySQL、PostgreSQL、MongoDB 等,存储真实用户数据。
  2. 身份认证与安全:学习 JWT、OAuth 等常见鉴权方式。
  3. 异步编程:了解 async / await 在 FastAPI 中的应用。
  4. 部署上线:学习 Gunicorn + Nginx 部署、Docker打包发布。
  5. 进阶性能优化:缓存机制、并发处理、负载均衡等。

结语:坚持写代码才能走得更远

刚开始可能觉得有些枯燥,但每写出一个接口、跑通一次请求,你都会更有成就感。FastAPI 是非常优秀的现代化框架,它不仅适合做原型开发,也适用于实际产品。

记住一点:不要怕犯错,多敲代码才是王道。

祝你在 FastAPI 学习的路上越走越顺,早日成为独当一面的后端开发者 💪


如果你有任何问题,可以在评论区留言,我会尽力回复大家~

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝