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

宋娜○
2025-06-27 10:58
阅读 579

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

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

你有没有想过,自己写一个网站或者小程序的时候,前端显示的内容是怎么从服务器拿到数据的?其实,这就是后端程序在帮忙。而今天我们介绍的 FastAPI,就是一个用来快速搭建后端服务的 Python 工具。

简单来说,你可以用 FastAPI:

  • 把你的 Python 程序变成可以通过浏览器访问的服务
  • 写一些“接口”(比如提供天气信息、用户登录功能等)
  • 自动生成 API 文档(方便你自己测试,也能给别人看)

FastAPI 特别适合 Python 初学者使用,因为它简单易懂、文档友好,并且速度快,是现代 Web 开发中非常流行的一种技术。


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

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

步骤1:安装 Python

确保你的电脑已经安装了 Python 3.7 及以上版本。可以打开终端(或命令行)输入:

python --version

如果看到类似 Python 3.9.12 的信息,说明已经安装好了。如果没有安装,请去官网下载安装包:https://www.python.org/downloads/

步骤2:创建项目文件夹

新建一个空的文件夹,例如叫 my_fastapi_project,并进入这个目录。

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

建议使用虚拟环境来隔离项目依赖。执行以下命令:

python -m venv venv

然后激活虚拟环境:

  • Windows:

    venv\Scripts\activate
    
  • macOS / Linux:

    source venv/bin/activate
    

激活成功后,命令行前会出现 (venv) 字样,表示你现在处于这个项目的独立环境中。

步骤4:安装 FastAPI 和 Uvicorn

Uvicorn 是运行 FastAPI 应用的工具。我们使用 pip 来安装它们:

pip install fastapi uvicorn

安装完成后就可以开始编写你的第一个 FastAPI 程序啦!


核心概念讲解:最简单的语言带你理解关键技术点

FastAPI 基于几个核心概念展开,下面我将一一解释这些概念,并配上代码示例。

1. 路由(Route)

路由就是告诉程序:“当用户访问某个 URL 时,我应该返回什么内容”。

例如:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "欢迎来到我的网站!"}

这段代码的意思是:当用户访问根地址 / 时,就调用 read_root() 函数,返回一个包含消息的字典。

💡 小贴士:函数名可以随便起,但习惯上我们会根据功能命名,比如 get_users, get_weather 等。

2. 请求方法(GET、POST)

常见的请求方式有:

  • @app.get(url):获取数据(比如查看文章列表)
  • @app.post(url):提交数据(比如注册账号)

举个 POST 的例子:

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

当你用 Postman 或其他工具向 /hello 提交一个名字(如 "Tom"),就会返回 “你好,Tom!”

3. 参数处理:路径参数和查询参数

路径参数(Path Parameter)

路径参数是 URL 中的一部分,用于标识具体资源,例如:

@app.get("/items/{item_id}")
def read_item(item_id: int):
    return {"item_id": item_id}

访问 /items/123,你会看到 { "item_id": 123 }

查询参数(Query Parameter)

查询参数是在 URL 后面跟着的一些可选参数,通常用于筛选或分页等。例如:

@app.get("/search")
def search(q: str, limit: int = 10):
    return {"query": q, "limit": limit}

访问 /search?q=book&limit=5 会得到:

{
  "query": "book",
  "limit": 5
}

可以看到,查询参数可以带默认值(如上面的 limit=10)。

4. 返回 JSON 格式的数据

FastAPI 默认支持返回 JSON 数据格式,这也是前后端交互的标准格式。

你可以直接 return 字典结构的数据,框架会自动转成 JSON。例如:

return {
    "id": 1,
    "name": "小明",
    "age": 20
}

实战项目:构建一个“打招呼”的API接口

接下来我们来做个小项目,实现一个 API 接口,可以接收用户的名字,然后返回一句问候语。

第一步:创建主文件

在你的项目文件夹中新建一个 Python 文件,比如叫 main.py

第二步:编写代码

from fastapi import FastAPI

app = FastAPI()

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

第三步:启动服务

在终端中运行下面这条命令:

uvicorn main:app --reload

这时你会看到类似如下的输出:

INFO:     Uvicorn running on http://127.0.0.1:8000

这说明你的服务已经跑起来了!

第四步:测试接口

打开浏览器,输入:

http://localhost:8000/greet?name=小张

你应该会看到这样的结果:

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

也可以点击这里查看自动生成的 API 文档页面:

http://localhost:8000/docs

你会看到一个交互式的界面,可以直接输入参数进行测试,非常方便!


常见问题解答(Q&A)

以下是新手常常遇到的问题,看看有没有你关心的:

Q1:为什么启动服务时报错说找不到模块?

A:请检查是否激活了虚拟环境,并确保你已经运行了 pip install fastapi uvicorn

Q2:怎么把服务部署到网上让别人访问?

A:开发阶段我们一般用本地调试。如果你想发布,可以考虑部署到云平台,比如 RenderHeroku 或者阿里云服务器等。

Q3:FastAPI 支持数据库吗?

A:FastAPI 本身不直接操作数据库,但它可以很好地配合 SQLAlchemy、Tortoise ORM 等数据库框架一起使用。

Q4:为什么推荐用 Uvicorn 启动而不是普通 Python 命令?

A:因为 FastAPI 基于 ASGI 协议,需要专门的服务器来运行。Uvicorn 是一个高性能、异步友好的 ASGI 服务器,非常适合 FastAPI 使用。


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

恭喜你完成了 FastAPI 的初体验!现在你可以尝试学习以下进阶内容:

1. 学习更多请求类型(PUT、DELETE)

继续扩展你的 API 功能,比如添加修改和删除数据的接口。

@app.put("/users/{user_id}") # 修改数据
@app.delete("/users/{user_id}") # 删除数据

2. 连接数据库(建议先学 SQLite)

学会如何将数据存到数据库里。可以从简单的 SQLite 开始,再逐渐了解 MySQL 或 PostgreSQL。

3. 认证与权限控制

比如添加登录机制、限制某些接口只能管理员访问。

4. 部署上线

学习使用 Nginx + Gunicorn 搭建生产环境,或者借助 Docker 打包部署你的应用。

5. 综合项目练习

试着做一个完整的小项目,例如:

  • 个人博客后台系统
  • 商品库存管理系统
  • 待办事项管理器(To-do App)

小结

本教程为你介绍了 FastAPI 的基本概念和使用方法,包括环境搭建、路由定义、参数处理和实战项目演练。通过这些知识点,你可以轻松写出一个能被访问的 API 接口。

记住一句话:学编程最有效的方式就是多动手、多实践

希望你能坚持敲代码、不断练习,早日成为一名出色的 Python 后端开发者!


如果你喜欢这篇文章,欢迎收藏+转发,也欢迎继续关注后续的《FastAPI进阶实战》课程。Happy Coding 🚀

评论 0

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