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

吴秀兰
2025-06-15 13:16
阅读 220

开篇:什么是FastAPI?它是用来做什么的?

开篇:什么是FastAPI?它是用来做什么的?

在互联网世界中,我们每天都在使用各种各样的网站和应用程序。比如你在购物平台上浏览商品、在社交媒体上传照片、或者用外卖APP点餐,这些功能的背后都需要一个“后端”来支持。

后端(Backend),简单来说,就是负责处理数据、执行业务逻辑和服务请求的部分。而 FastAPI 就是一个帮助你快速开发后端服务的 Python 工具包。

🚀 FastAPI 是基于 Python 的一个现代、高效的 Web 框架,专门用于构建 API(Application Programming Interface),也就是前后端通信的接口。

它的特点是:

  • 快速开发
  • 自动生成交互式 API 文档
  • 强类型支持(可以自动检查参数)
  • 性能接近 Go 和 Node.js 的水平(非常快)

无论你是想做微信小程序的后台,还是打造自己的博客系统,FastAPI 都能帮你快速起步!


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

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

步骤一:安装 Python

确保你的电脑上已经安装了 Python 3.7 或以上版本。你可以通过命令行输入以下命令查看当前 Python 版本:

python --version

如果没有安装,可以从 Python 官网下载安装。

步骤二:安装 pip(Python 包管理工具)

如果你使用的是 Python 3.4 及以上版本,pip 一般会默认安装。你可以运行下面这条命令确认:

pip --version

步骤三:安装 FastAPI 和 Uvicorn

FastAPI 本身只是个框架,我们需要配合一个叫做 Uvicorn 的服务器来运行它。打开命令行工具,依次输入以下两条命令安装它们:

pip install fastapi
pip install uvicorn

步骤四:安装代码编辑器(推荐 VS Code)

建议使用 Visual Studio Code,这是一个免费且强大的代码编辑器,非常适合初学者。


核心概念:让你不再对“专业术语”感到困惑

核心概念:让你不再对“专业术语”感到困惑

即使你是零基础,也不用担心,我会用最通俗的方式解释每个核心概念。

1. API 是什么?

API 就像是菜单。你在餐厅点菜时,服务员不会自己去做菜,而是拿着菜单去厨房下单。这里的“菜单”就相当于 API,它告诉后端你想要什么。

例如:你访问网页 https://example.com/hello,这个地址就是一个 API 接口,后端会根据这个请求返回相应的结果。

2. 路由(Route)是什么?

路由就像是地图中的路线。当你访问某个网址时,FastAPI 会根据你访问的 URL 找到对应的处理函数。

比如:

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

这段代码的意思是:只要有人访问 /hello 这个路径,就会调用 say_hello 函数。

3. 请求方法(HTTP Method)

常见的请求方式有:

方法 描述
GET 获取数据
POST 提交数据(如注册表单)
PUT 更新数据
DELETE 删除数据

你可以理解为:GET 是“看”,POST 是“写”。

4. 参数(Parameter)与查询字符串(Query)

我们可以让 API 支持动态的内容。比如:

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

这样访问 /greet/小明 会返回 “你好 小明!”。

另外,还可以通过问号传参,例如:

/users?name=Tom

在代码里写成:

@app.get("/users")
def get_user(name: str):
    return {"name": name}

5. 数据模型(Data Model)

为了规范客户端提交的数据格式,我们可以使用 Pydantic 来定义数据结构。

比如我们想创建一个用户信息接口:

from pydantic import BaseModel

class User(BaseModel):
    name: str
    age: int
    email: str = None  # 可选字段

@app.post("/users")
def create_user(user: User):
    return {"received": user}

这样客户端必须按照 User 的格式发送 JSON 数据才能被接收。


实战项目:跟着我一步步搭建一个简单的博客 API

实战项目:跟着我一步步搭建一个简单的博客 API

我们要完成一个简单的博客 API,包含以下功能:

  • 查看所有文章列表
  • 新增一篇文章
  • 查看某篇文章详细内容

第一步:创建项目目录和主文件

新建一个文件夹,比如叫 my_blog_api,在里面创建一个文件 main.py,这就是我们的入口文件。

第二步:编写基本代码

打开 main.py,输入以下内容:

from fastapi import FastAPI
from pydantic import BaseModel
from typing import List

app = FastAPI()

# 模拟数据库存储
articles = []

# 定义数据模型
class Article(BaseModel):
    title: str
    content: str
    author: str

# 获取所有文章
@app.get("/articles", response_model=List[Article])
def get_articles():
    return articles

# 新增一篇文章
@app.post("/articles")
def add_article(article: Article):
    articles.append(article)
    return {"message": "文章已添加"}

# 获取指定文章
@app.get("/articles/{index}")
def get_article(index: int):
    return {"article": articles[index]}

第三步:启动服务

在终端中运行以下命令启动 FastAPI:

uvicorn main:app --reload
  • main 是文件名(不带 .py
  • app 是我们在代码中创建的 FastAPI 实例
  • --reload 表示热更新,修改代码后自动重启

启动成功后,默认会监听 http://127.0.0.1:8000

第四步:测试你的 API

打开浏览器或使用 Postman 访问:

  • 获取所有文章:http://localhost:8000/articles
  • 新增文章:
    • 使用 POST 请求访问 http://localhost:8000/articles
    • 发送 JSON 数据如:
      {
        "title": "第一篇文章",
        "content": "这是我的第一篇文章内容。",
        "author": "张三"
      }
      
  • 查看指定文章:http://localhost:8000/articles/0

你也可以直接访问 FastAPI 提供的交互文档:

http://localhost:8000/docs

在这里你可以直接点击【Try it out】进行 API 测试!


常见问题解答:你会遇到的问题我都替你想好了!

Q1:为什么我的接口一直报错?

  • 检查拼写:变量名是否正确?
  • 检查缩进:Python 对缩进要求严格。
  • 重启服务:有时候旧代码没有生效,试试重启一下 Uvicorn。

Q2:如何调试 FastAPI?

你可以在函数内部加 print() 输出日志,观察程序是否执行到了那一步。更专业的做法是使用调试器(例如 VS Code 内置的调试工具)。

Q3:如何给接口加 Token 验证?

这涉及到权限验证。FastAPI 支持 OAuth2、JWT 等认证方式,适合进阶学习后再尝试。

Q4:API 能否连接真正的数据库?

当然可以!FastAPI 本身不绑定特定数据库,你可以使用 SQLAlchemy、Tortoise ORM 等工具连接 MySQL、PostgreSQL、MongoDB 等多种数据库。


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

恭喜你完成了 FastAPI 入门教程!接下来你可以沿着以下方向继续学习:

✅ 继续深入 FastAPI 功能

  • 异常处理(使用 HTTPException 返回错误信息)
  • 文件上传(File Upload)
  • 用户认证(OAuth2/JWT)
  • 自定义中间件(Middleware)

✅ 学习异步编程(Async/Await)

FastAPI 支持异步操作,适合高并发场景。可以学习 Python 的 async defawait 关键字。

✅ 整合数据库

推荐从 SQLite 开始学习数据库连接,再过渡到 MySQL、PostgreSQL。

✅ 学习部署上线

你可以将项目部署到如下平台:

  • 本地服务器
  • Heroku(适合新手)
  • Docker + Nginx + Gunicorn
  • 云服务器(如阿里云、腾讯云)

结语

FastAPI 是 Python 后端开发中一个非常强大又容易上手的工具。希望通过这篇新手指南,你能建立起对后端开发的基本理解,并动手实现了一个小小的 API 应用。

记住一句话:“代码写得不够好没关系,关键是先写出来。”只要你坚持实践,不断尝试,很快你就能写出属于自己的完整项目!

如果这篇文章对你有帮助,别忘了收藏+转发哟~如果你有任何问题,也欢迎留言交流,我们一起进步!

评论 0

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