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

超凡之学者
2025-06-22 09:44
阅读 664

开篇:FastAPI 是什么?能做什么?

开篇:FastAPI 是什么?能做什么?

你有没有想过,当你在浏览器上访问一个网站时,背后其实有一台电脑(服务器)正在为你工作?而“后端”,就是负责这些工作的代码部分。它的任务包括处理用户的请求、保存数据、执行计算等。

FastAPI 就是一个用来快速开发 Python 后端服务的框架。它可以帮助我们很容易地创建一个能被网页、App 或其他程序访问的接口(比如获取数据、提交信息)。

为什么说它是“快”的呢?因为它:

  • 使用起来简单,适合初学者
  • 自动生成文档,方便调试和分享
  • 速度非常快,接近 Node.js 的性能
  • 支持异步操作,处理并发更高效

在本教程中,你将从零开始学习如何用 FastAPI 写一个简单的后端应用。不需要任何后端基础,只需要一点点 Python 基础即可!


环境准备:搭建你的开发环境

环境准备:搭建你的开发环境

工欲善其事,必先利其器。我们先来准备好工具和环境。

步骤1:安装 Python

确保你已经在电脑上安装了 Python 3.7 及以上版本

你可以通过命令行输入以下命令查看当前 Python 版本:

python --version

如果没有安装或者版本太低,请前往官网 https://www.python.org/downloads/ 下载并安装最新版。


步骤2:创建虚拟环境(推荐)

为了避免不同项目的依赖冲突,建议使用虚拟环境。

在 Windows 上:

python -m venv fastapi_env
fastapi_env\Scripts\activate

在 macOS/Linux 上:

python -m venv fastapi_env
source fastapi_env/bin/activate

激活成功后,你会在命令行前看到 (fastapi_env) 的提示。


步骤3:安装 FastAPI 和 Uvicorn

FastAPI 本身只是一个框架,我们需要一个服务器来运行它。这里我们使用 Uvicorn 来作为运行 FastAPI 的服务器。

在激活虚拟环境后,输入以下命令安装:

pip install fastapi uvicorn

安装完成后,我们就可以开始写第一个 FastAPI 应用了!


核心概念:FastAPI 的三个关键词

核心概念:FastAPI 的三个关键词

为了让你快速理解,我们只讲最重要的三个概念:

  1. API(Application Programming Interface)
    API 就像一个服务员,当你需要菜单上的菜(数据),你就告诉 API 要什么,它会帮你去厨房取回来给你。

  2. 路由(Route)
    每个 API 都有一个地址,我们叫它“路由”。比如 /hello 这个地址就对应一个打招呼的功能。

  3. 请求方法(HTTP Methods)
    常见的方法有 GET、POST、PUT、DELETE 等。它们分别代表不同的动作:

    • GET:获取数据
    • POST:提交数据
    • PUT:修改数据
    • DELETE:删除数据

实战项目:做一个最简单的 API

我们要做的项目是一个返回问候语的小型 API,功能如下:

  • 当用户访问 /hello 地址时,返回 {"message": "你好,世界!"}

第一步:新建项目文件

在你喜欢的编辑器(例如 VS Code)中创建一个文件夹,比如叫 my_fastapi_project,然后在里面创建一个名为 main.py 的文件。

第二步:编写你的第一个 FastAPI 应用

打开 main.py,写下下面这段代码:

from fastapi import FastAPI

app = FastAPI()

@app.get("/hello")
def say_hello():
    return {"message": "你好,世界!"}

解释一下这段代码:

  • FastAPI() 创建了一个应用实例。
  • @app.get("/hello") 表示这是一个响应 GET /hello 请求的路由。
  • say_hello 是当这个路由被访问时执行的函数。
  • 它返回的数据会被自动转换成 JSON 格式。

第三步:启动应用

在终端中,进入 main.py 所在目录,然后运行:

uvicorn main:app --reload

说明:

  • uvicorn 是我们的服务器
  • main:app 表示使用 main.py 文件中的 app 对象
  • --reload 是开发模式下的热重载功能(改完代码会自动重启)

运行后,你会看到类似如下的输出:

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

说明服务已经启动成功了!

第四步:测试你的 API

现在打开浏览器,访问地址:

http://127.0.0.1:8000/hello

你应该能看到:

{
  "message": "你好,世界!"
}

🎉 成功啦!你刚刚完成了一个属于自己的后端 API!


更进一步:带参数的 API 示例

接下来我们来做一个稍微复杂一点的例子:一个加法计算器。

功能描述:

  • 用户访问 /add?a=3&b=5,应该返回 {"result": 8}
  • 支持两个数相加

修改 main.py 如下:

from fastapi import FastAPI

app = FastAPI()

@app.get("/hello")
def say_hello():
    return {"message": "你好,世界!"}

@app.get("/add")
def add_numbers(a: int, b: int):
    return {"result": a + b}

现在访问这个 URL:

http://127.0.0.1:8000/add?a=3&b=5

你会发现结果是:

{
  "result": 8
}

是不是很神奇?FastAPI 会自动从 URL 中提取参数,并帮你把它们变成整数!


自动生成文档:Swagger UI 和 ReDoc

FastAPI 强大的地方之一就是它自带了 API 文档系统。我们不需要手动写文档,只需要写好代码,就能生成漂亮的交互式接口说明。

在浏览器中访问:

http://127.0.0.1:8000/docs

你会看到一个交互式的界面,里面列出了你写的 API,还能直接点击 “Try it out” 发送请求!

也可以看看另一个风格的文档页面:

http://127.0.0.1:8000/redoc

是不是很方便?这对于团队协作、对外提供接口都非常重要!


常见问题与解答

Q1:FastAPI 是不是必须配合数据库使用?

A:不是的。FastAPI 可以单独使用,即使没有数据库也能构建很多小功能,比如天气查询、翻译接口等。当然,大多数正式项目最终都会连接数据库。


Q2:我运行 uvicorn main:app --reload 的时候报错了,怎么办?

A:请检查几点:

  • 是否在正确的目录下运行?
  • 是否安装了 uvicorn?
  • main.py 文件中是否真的定义了 app?
  • 是否有拼写错误?

可以贴出具体错误内容到搜索引擎查找解决方案,或尝试重新安装 FastAPI:

pip install fastapi uvicorn --force-reinstall

Q3:返回的是中文,但显示乱码了?

A:一般来说,FastAPI 默认使用 UTF-8 编码,不会出现乱码。如果你遇到了类似问题,请确认:

  • 浏览器是否支持中文字符
  • 代码中的字符串是否有语法错误(比如引号不匹配)
  • 返回的数据结构是否正确(比如没有嵌套太多层级)

Q4:能否用 POST 方法?怎么发送表单数据?

当然可以。我们来举个小例子:

新增一个 POST 接口:

@app.post("/greet")
def greet_user(name: str):
    return {"message": f"你好,{name}!"}

你可以用 Postman 或 curl 测试它:

curl -X POST http://127.0.0.1:8000/greet -d "name=张三"

返回:

{
  "message": "你好,张三!"
}

FastAPI 会自动解析表单数据、JSON 数据等格式。


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

恭喜你完成了第一课!你现在能够:

  • 搭建 FastAPI 开发环境
  • 创建 GET、POST 类型的 API
  • 理解基本的路由和参数使用
  • 使用自动生成的文档调试接口

接下来,你还可以继续学习以下方向:

1. 使用 Pydantic 做数据校验

Pydantic 是 FastAPI 强力的伙伴,可以让你轻松定义复杂的数据模型并验证用户输入是否合法。

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float

2. 连接数据库(如 SQLite、PostgreSQL)

FastAPI 不直接管理数据库,但它能很好地与 SQLAlchenmy、Tortoise ORM 等结合使用。


3. 使用异步(async)提升性能

对于高并发场景,使用 async 关键字可以让你的服务器同时处理多个请求,效率更高。


4. 部署你的 FastAPI 应用

学完开发之后,你可能希望把程序放到网上让别人也能访问。可以使用 Nginx + Gunicorn 部署,或者使用 Docker 容器化部署。


总结

FastAPI 是 Python 后端开发的新星,它简单易学、功能强大,特别适合刚入门的同学。本文从环境搭建到实战编码,带你一步步实现自己的第一个 API 接口。希望你能保持学习的热情,不断探索更多的功能。

记住一句话:后端就是为前端服务的程序,而 FastAPI 让这件事变得既简单又有趣。

如果你喜欢这种手把手教学风格,欢迎继续关注更多《后端开发新手系列》教程。祝你在编程之路上越走越远!💪🚀

评论 0

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