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

睿智的法师
2025-06-18 18:33
阅读 688

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

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

你是不是也经常听到“后端”、“接口”、“服务器”这些词,但总感觉它们离你很遥远?今天,我们就要带你走进后端开发的世界,从零开始,一起学习一个叫做 FastAPI 的工具。

FastAPI 是一个用于创建 API(Application Programming Interface)的 Python 框架。你可以把它理解成一个“小电脑”,这个小电脑可以接收请求、处理数据,并返回结果给其他程序或网页。

举个例子:
当你用手机App查询天气时,其实App并没有自己去查天气,而是向某个“后台服务器”发送了请求,服务器会告诉它今天的天气。这个后台就是用类似 FastAPI 这样的工具写的。

👉 FastAPI 的优点是:

  • 学习简单
  • 性能好(比很多其他框架快)
  • 自带文档界面,非常友好

所以,如果你是一个刚接触编程的新手,又想尝试做网站或者 App 的后端服务,那么 FastAPI 就是一个非常好的选择!


环境准备:搭建你的第一个 FastAPI 工作环境

环境准备:搭建你的第一个 FastAPI 工作环境

在写代码之前,我们先来准备好环境。

✅ 所需工具清单:

  • Python 3.8 或更高版本
  • pip(Python 的包管理器)
  • 一个代码编辑器(比如 VS Code)

💡 如果你还没装 Python,可以去 Python 官网 下载安装包。安装过程中记得勾选 “Add to PATH”。


Step 1:安装 FastAPI 和 Uvicorn

Uvicorn 是运行 FastAPI 应用的服务器,我们需要同时安装它。

打开终端(Windows 上是命令行 CMD / PowerShell,Mac/Linux 是 Terminal),输入以下命令:

pip install fastapi uvicorn

等一会儿,看到 “Successfully installed” 表示安装成功。


Step 2:检查是否安装成功

运行下面的命令查看版本号:

fastapi --version
uvicorn --version

如果能看到 FastAPI 和 Uvicorn 的版本信息,就说明安装成功啦!


Step 3:用 VS Code 编写代码

你可以使用任何文本编辑器来写代码,但推荐使用 Visual Studio Code(简称 VS Code),它是免费、功能强大且适合初学者的编辑器。

下载地址:https://code.visualstudio.com/

安装完成后,我们就可以开始写代码啦!


核心概念:让你不再懵懂的五个关键词

核心概念:让你不再懵懂的五个关键词

刚开始学习一个新东西,肯定会遇到很多专业术语。不要怕,我们一个个来看。


🔹 什么是 API?

API 其实就是一个接口。就像你和朋友说话一样,你在问问题(发送请求),朋友回答你(返回数据)。API 也是这样工作的。

举个例子:

from fastapi import FastAPI

app = FastAPI()

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

这段代码定义了一个最简单的 API 接口。访问根路径 /,就会收到一条问候语。


🔹 什么是路由(Route)?

路由其实就是 URL 路径。

比如:

  • GET / 是首页
  • GET /about 是关于页面
  • POST /login 是登录页面

FastAPI 通过装饰器的方式定义路由:

@app.get("/about")
def about_page():
    return {"content": "这是一个关于页面"}

访问 http://localhost:8000/about,就能看到这条内容。


🔹 GET 和 POST 请求有什么区别?

这两个是最常见的请求方式:

方法 使用场景 是否安全
GET 获取数据(如查天气) ✅ 安全
POST 提交数据(如登录、注册) ❌ 不安全

FastAPI 中分别用 @app.get()@app.post() 来处理:

@app.post("/login")
def login_user(username: str, password: str):
    return {"username": username, "status": "已登录"}

🔹 什么是自动文档?

FastAPI 非常贴心,它会自动生成两个文档页面:

  • Swagger UI:http://localhost:8000/docs
  • ReDoc:http://localhost:8000/redoc

你可以在这些页面上直接测试自己的接口!


🔹 什么是异步编程?

别被这个词吓到。异步的意思就是说:你可以一边煮饭,一边听歌,互不干扰。FastAPI 支持异步操作,性能更强。

比如你可以写一个异步函数:

@app.get("/async")
async def async_example():
    return {"status": "异步调用成功"}

实战项目:做个天气查询接口吧!

现在我们来做个小项目:实现一个“天气查询”的接口

🛠️ 第一步:创建主程序文件

新建一个文件夹,比如叫 weather_api,在里面创建一个名为 main.py 的文件,然后输入下面的代码:

from fastapi import FastAPI

app = FastAPI()

# 假设这是天气数据
weather_data = {
    "北京": "晴",
    "上海": "多云",
    "广州": "阵雨",
    "深圳": "雷雨"
}

@app.get("/weather/{city}")
def get_weather(city: str):
    if city in weather_data:
        return {"city": city, "weather": weather_data[city]}
    else:
        return {"error": "没有该城市的天气信息"}

🚀 第二步:运行你的应用

在终端中执行:

uvicorn main:app --reload

你会看到一大段输出,最后会出现一句:

Running on http://127.0.0.1:8000/

表示服务已经启动啦!


📡️ 第三步:访问接口试试看

浏览器中打开:

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

你会看到这样的返回:

{"city": "北京", "weather": "晴"}

如果你想看看其他城市,把“北京”换成别的城市名试试!

你也可以去文档页面 http://localhost:8000/docs 点击测试按钮。


常见问题解答

缓存策略对比-1

有些问题是你可能会遇到的,我们提前帮你解决掉👇

❓Q1:运行的时候提示“No module named 'fastapi'”

➡️ 解决办法:说明你还没有安装 FastAPI,请回到前面的“安装步骤”,重新执行安装命令。


❓Q2:修改了代码,为什么没生效?

➡️ 解答:因为默认情况下,FastAPI 并不会自动重启。加了参数 --reload 后,它才会监听变化并自动重启。

确保你是这样运行的:

uvicorn main:app --reload

❓Q3:我怎么知道接口有没有错误?

➡️ 建议:

  1. 看终端有没有报错信息
  2. 使用内置文档页面进行测试
  3. 用 Postman 工具模拟请求

❓Q4:如何退出正在运行的服务器?

➡️ 在终端里按 Ctrl + C 就可以停止当前的服务。


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

你现在已经有了基本的 FastAPI 使用经验。接下来你可以继续深入以下几个方向:

✅ 数据库操作(可选)

你可以学会连接数据库,比如 SQLite、MySQL,从而存储用户数据、商品信息等。

推荐模块:

  • SQLAlchemy(Python 的 ORM 工具)
  • Alembic(数据库迁移工具)

✅ 用户认证 & Token 登录

学会了基本接口之后,可以加上权限控制,比如:

  • 登录后才能访问某些接口
  • 拿到 Token 再访问特定资源

常用模块:OAuth2, JWT


✅ 部署上线(进阶)

当你做出一个完整项目后,可以考虑部署到真实服务器上,让别人也能访问你的网站。

常用的部署方式有:

  • 使用 Nginx + Gunicorn
  • 部署到 Vercel、Render、Heroku、阿里云等平台

✅ 更深入地了解异步编程

FastAPI 支持异步请求,可以提高并发能力。你可以学习 async defawaitaiohttp 等相关知识。


结束语

恭喜你完成了 FastAPI 的第一课!

你现在不仅知道什么是 API,还能写出一个真正的接口,甚至还可以让它支持文档和测试!

记住一句话:“编程不是一蹴而就的事,但每天进步一点点,你就是未来的高手。”

如果你喜欢这篇文章,欢迎分享给朋友;如果你有任何问题,也欢迎留言讨论 😊


🎉 你的第一个 FastAPI 接口,已经跑起来了!下一次,我们将一起探索更酷的功能!

评论 0

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