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

后端漫游指南
2025-06-26 08:49
阅读 673

开篇:FastAPI是什么?它能帮你做什么?

开篇:FastAPI是什么?它能帮你做什么?

你可能听说过“网站”、“App”,或者“后端服务”这些词,但它们到底是什么?简单来说:

  • 前端是用户能看到的部分,比如网页和手机App;
  • 后端负责处理数据、逻辑运算和提供接口(也就是前后端通信的桥梁);

FastAPI就是一个用来写后端服务的强大工具。它用 Python 编写,功能强大而且学习曲线平缓,非常适合刚接触编程的新手。

FastAPI 的特点包括:

  • 支持异步编程
  • 自动生成接口文档(Swagger 和 ReDoc)
  • 高性能,接近 Node.js 和 Go 的水平
  • 强类型支持,减少错误
  • 易于测试和部署

这篇文章将从零开始带你看懂什么是 FastAPI,如何搭建环境,并完成一个简单的项目——让我们一起迈出成为后端开发者的第一步!


环境准备:搭建你的第一个 FastAPI 开发环境

环境准备:搭建你的第一个 FastAPI 开发环境

第一步:安装 Python

FastAPI 基于 Python,所以你需要先安装 Python。
👉 到 https://www.python.org/downloads/ 下载对应系统的 Python 安装包。安装时记得勾选 “Add to PATH”。

安装完成后,在终端或命令行输入以下命令检查是否安装成功:

python --version

你应该看到类似这样的输出(版本号可能会不同):

Python 3.10.4

第二步:安装 FastAPI 和 Uvicorn

FastAPI 只是一个框架,要运行它还需要一个服务器来支持,这里我们使用 Uvicorn

打开终端或命令行,执行以下两条命令:

pip install fastapi
pip install uvicorn

💡 提示:如果遇到权限问题,可以在命令前加 sudo(Mac/Linux),或者以管理员身份运行命令提示符(Windows)。


第三步:验证安装

创建一个新文件,命名为 main.py,在其中写下以下代码:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello, World!"}

这段代码创建了一个最简单的 FastAPI 应用。保存之后,回到终端运行:

uvicorn main:app --reload

如果你看到以下内容,说明一切正常:

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [PID]
INFO:     Started server process [PID]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

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

{"message":"Hello, World!"}

太棒了!你已经成功运行了一个 FastAPI 服务!


核心概念:理解 FastAPI 的工作方式

核心概念:理解 FastAPI 的工作方式

FastAPI 是基于 Web API 构建的,这意味着我们主要通过定义路由来响应请求。下面是一些你在学习过程中会频繁遇到的核心概念。


1. 路由(Route)

路由就是告诉程序:“当用户访问这个地址的时候,我要返回什么内容。”

例如前面例子中的:

@app.get("/")
def read_root():
    return {"message": "Hello, World!"}

这里的 / 就是根路径,get() 表示这是一个 GET 请求(比如浏览器访问网址通常都是 GET 请求)。这个函数会返回一段 JSON 数据。

你可以尝试添加一个新的路径 /hello

@app.get("/hello")
def say_hello():
    return {"say": "Hello again!"}

访问 http://127.0.0.1:8000/hello 就可以看到新的结果。


2. 请求方法(GET、POST等)

不同的请求类型有不同的用途:

方法 含义
GET 获取数据(常见于读取信息)
POST 发送数据(常用于提交表单或登录)

你可以这样写一个 POST 接口:

@app.post("/login")
def login():
    return {"status": "logged in"}

使用 Postman 或 curl 测试一下效果吧!


3. 参数传递

有时我们需要从 URL 或请求中获取参数。FastAPI 支持多种传参方式:

路径参数(Path Parameters)

@app.get("/users/{user_id}")
def get_user(user_id: int):
    return {"id": user_id}

访问 /users/123 就能接收到参数 123

查询参数(Query Parameters)

@app.get("/search")
def search(q: str):
    return {"query": q}

访问 /search?q=hello 将得到 {"query": "hello"}


4. 自动文档生成

当你访问:

你会发现 FastAPI 已经自动生成了漂亮的接口文档!这非常适合团队协作和调试。


实战项目:写一个待办事项(Todo)管理系统

服务器部署方案-1

接下来我们将做一个小项目:实现一个简单的 Todo 应用,可以创建任务并查看所有任务列表。


第一步:规划功能

我们要做的功能如下:

  1. 创建一个 todo 任务
  2. 获取所有 todo 列表

第二步:编写模型类(Model)

在 Python 中我们可以使用 Pydantic 来定义数据模型。

新建文件 models.py

from pydantic import BaseModel

class Todo(BaseModel):
    name: str
    description: str
    completed: bool = False

这表示每个 todo 有名称、描述和状态。


第三步:编写主程序

修改 main.py

from fastapi import FastAPI
from models import Todo

app = FastAPI()

todos = []

@app.post("/todos")
def create_todo(todo: Todo):
    todos.append(todo)
    return {"message": "Todo added"}

@app.get("/todos")
def get_todos():
    return {"data": todos}

第四步:运行服务并测试

再次运行服务:

uvicorn main:app --reload

访问 http://127.0.0.1:8000/docs

点击 /todosPOST 接口 → “Try it out” → 输入如下 JSON:

{
  "name": "Buy groceries",
  "description": "Need to buy milk and bread"
}

然后点击 “Execute”。你会看到一个成功的响应。

接着点击 /todosGET 接口查看所有任务。


常见问题解答

Q1: 启动时报错说找不到模块怎么办?

可能是你没有正确安装依赖库。请依次运行:

pip install fastapi
pip install uvicorn
pip install pydantic

确保拼写无误,且在正确的环境中运行。


Q2: 出现“address already in use”错误怎么办?

这说明 8000 端口被占用了。你可以换一个端口号启动:

uvicorn main:app --port 8001 --reload

Q3: 接口文档没出现?

确认你的代码里有没有拼写错误,如 app.get('/') 正确吗?

如果没问题还看不到文档,请尝试刷新页面或更换浏览器。


Q4: 想同时运行多个服务可以吗?

当然可以。只要使用不同的端口即可:

uvicorn another_app:app --port 8001 --reload

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

恭喜你完成了 FastAPI 的第一次实践旅程!你可以继续探索这些方向:

1. 持久化存储

现在的数据都存到内存里,重启就没了。可以尝试连接数据库,比如 SQLite、MySQL 或 MongoDB。

2. 用户认证与安全

学习 JWT、OAuth2 等机制来保护你的 API。

3. 异步处理

了解 async/await 关键字,让你的服务支持高并发。

4. 部署上线

使用 Docker、Gunicorn、Nginx 等技术将你的服务部署到真实服务器上。


写在最后

FastAPI 是一个现代又强大的工具,它的设计哲学非常贴近程序员的需求,尤其是对于初学者友好。希望这篇《FastAPI 入门教程》让你体验到了后端开发的乐趣。

如果你发现这篇文章对你有帮助,不妨收藏起来,作为你通往程序员之路的第一把钥匙。后续我们也会陆续发布更深入的内容,敬请关注!

Happy Coding ✨

评论 0

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