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

灰度发布员
2025-06-27 17:49
阅读 565

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

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

在现代Web开发中,后端(也叫服务器)负责处理业务逻辑、数据存储和与前端的交互。如果你是想学习如何构建一个网站或者App背后那个“看不见的”部分,那么你来对地方了!

FastAPI 是一个用于创建Web API 的 高性能 Python 框架。它可以让你用简单的 Python 代码快速搭建出功能强大的接口服务(例如登录接口、注册接口、查询数据等)。你可以把它看作是一个“工具包”,专门帮你把 Python 代码变成网页或App可以访问的服务。

FastAPI的特点:

  • 快速开发:基于Python类型提示,无需手动写文档
  • 自动生成接口文档:访问 /docs 即可看到美观的调试界面
  • 支持异步编程:适合高并发场景
  • 易学易用:不需要太多基础就能上手

接下来我们就一步一步来学习怎么使用 FastAPI 创建属于你的第一个 Web 接口吧!


环境准备:安装必要的开发工具

环境准备:安装必要的开发工具

开始前,我们需要准备好开发环境。下面我们将一步步介绍如何安装 Python 和 FastAPI。

第一步:安装 Python

请先确认你已经安装了 Python。你可以打开命令行(Windows 上叫 cmd,Mac 上可以用终端),输入以下命令查看版本:

python --version

输出类似这样说明已经安装成功:

Python 3.8.10

如果没有安装,请前往官网下载并安装最新版 Python:https://www.python.org/downloads/

⚠️ 温馨提示:建议使用 Python 3.7 或更高版本。


第二步:安装 FastAPI 和 Uvicorn

我们使用 pip 来安装所需库。在命令行中依次执行:

pip install fastapi uvicorn
  • fastapi 是主框架
  • uvicorn 是运行 FastAPI 的服务器

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


核心概念:最基础的概念都给你讲明白

核心概念:最基础的概念都给你讲明白

刚开始接触 FastAPI 可能会遇到一些陌生的词,比如“路由”、“接口”、“请求方法”等。别怕,我们一个个解释清楚,并配上例子。


1. 路由(Route)是什么?

可以简单理解为:浏览器访问某个网址时,应该返回什么内容。

举个例子:

  • 当用户访问 /hello 这个地址时,我们应该让他看到一句话:“Hello, FastAPI!”

2. 请求方法(HTTP Method)

浏览器访问页面时使用的动作有很多种。最常见的两个是:

  • GET:获取信息(例如:读取一篇文章)
  • POST:提交信息(例如:用户注册)

其他还有 PUT(更新)、DELETE(删除)等,但我们初学者从 GET 和 POST 开始就可以了。


3. 编写第一个 Hello World 程序

我们来创建一个文件,叫做 main.py,然后在里面写下如下代码:

from fastapi import FastAPI

app = FastAPI()

@app.get("/hello")
def say_hello():
    return {"message": "Hello, FastAPI!"}

这段代码做了什么呢?

  • 创建了一个 FastAPI 应用对象 app
  • 使用 @app.get("/hello") 定义了一个 GET 接口,访问路径是 /hello
  • 当用户访问这个接口时,就会调用 say_hello() 函数,返回一段 JSON 数据

4. 启动服务器

在命令行中进入 main.py 所在目录,运行:

uvicorn main:app --reload
  • main 是文件名(不带 .py
  • app 是你在代码中定义的 FastAPI 实例
  • --reload 表示自动刷新(当你修改代码后,服务器会自动重启)

启动成功后你会看到:

Uvicorn running on http://127.0.0.1:8000

5. 浏览器访问测试接口

打开浏览器,访问地址:

👉 http://127.0.0.1:8000/hello

你应该会看到:

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

🎉 太棒了!你现在写出了人生第一个 FastAPI 接口!


6. 自带的文档界面(Swagger UI)

现在再访问:

👉 http://127.0.0.1:8000/docs

你会看到一个漂亮的图形化接口文档页面。在这里你可以直接测试接口,非常方便!


实战项目:做一个天气查询接口(带参数)

实战项目:做一个天气查询接口(带参数)

学完基本概念之后,我们一起来做个小项目:用 FastAPI 写一个支持查询城市天气的接口。


功能目标:

  • 用户可以通过 URL 提交想要查询的城市名,例如 /weather?city=北京
  • 接口返回该城市的天气信息(我们暂时用模拟的数据)

步骤一:添加接口函数

修改 main.py 文件,新增一个 GET 接口 /weather

@app.get("/weather")
def get_weather(city: str):
    # 模拟不同城市的天气数据
    weather_data = {
        "北京": "晴天",
        "上海": "多云",
        "广州": "雨天"
    }
    if city in weather_data:
        return {"city": city, "weather": weather_data[city]}
    else:
        return {"error": f"未找到 {city} 的天气信息"}

这串代码的关键点在于:

负载均衡配置-2

  • city: str 表示我们接受一个字符串类型的参数
  • 如果找不到对应城市,就返回错误信息

步骤二:测试接口

启动服务器:

uvicorn main:app --reload

然后访问:

👉 http://127.0.0.1:8000/weather?city=北京

结果应该是:

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

换成别的城市试试,如上海、深圳、杭州看看会不会出现错误提示。


步骤三:在 Docs 中测试接口

再次访问:

👉 http://127.0.0.1:8000/docs

你会看到 /weather 接口出现在文档中。点击 Try it out,输入城市名,然后点击 Execute,你会看到接口返回的结果。

是不是感觉像一个小工具?其实这就是未来你要做的 API 接口的样子 😄


常见问题解答(FAQ)

数据库设计模型-1

❓ Q1:为什么我的接口返回的是 XML 而不是 JSON?

FastAPI 默认只支持 JSON 格式,如果不是可能是你的浏览器或请求方式有问题。推荐使用 Postman 或 Docs 页面来测试接口。


❓ Q2:我修改了代码但是没有效果?

确保你启动服务器的时候加了 --reload 参数。否则需要手动重启服务器才能看到变化。


❓ Q3:报错 “TypeError: 'module' object is not callable” 怎么办?

检查你的代码是否写错了导入语句,比如:

❌ 错误示范:

import fastapi
app = fastapi()

✅ 正确写法:

from fastapi import FastAPI
app = FastAPI()

❓ Q4:运行 uvicorn main:app --reload 报错?

有可能是因为你没有安装 uvicorn,请运行:

pip install uvicorn

❓ Q5:如何让外部设备访问我的接口?

默认只能本地访问,如果你想在局域网中的手机或其他设备访问,可以加上 --host 0.0.0.0 参数:

uvicorn main:app --reload --host 0.0.0.0

然后用你电脑的 IP 地址 + 端口号访问即可,比如:

👉 http://192.168.0.101:8000/hello


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

恭喜你完成了第一次 FastAPI 入门练习!

为了继续提高,你可以沿着以下方向深入学习:


✅ 第一步:学习更多请求方式

  • POST 接收表单或 JSON 提交的数据
  • PUT 更新已有数据
  • DELETE 删除数据

例如写一个注册用户的 POST 接口:

@app.post("/register")
def register_user(name: str, age: int):
    return {"name": name, "age": age, "status": "registered"}

✅ 第二步:连接数据库

学会用数据库存储用户信息或天气数据,而不是写死在代码里。推荐从 SQLite 开始学习。


✅ 第三步:使用 Pydantic 验证数据格式

Pydantic 是 FastAPI 用来验证请求数据格式的强大工具。


✅ 第四步:部署到线上服务器

学习如何把你的 FastAPI 程序部署到互联网上,让更多人能访问。常用平台包括:

  • Heroku
  • Render
  • Vercel
  • 阿里云 / 腾讯云

结语

FastAPI 是一个非常适合新手入门后端开发的框架。它简洁、高效、自带文档系统,能让你专注于写业务逻辑,而不是繁琐的配置。

坚持动手实践,每一步都自己敲一遍代码,你很快就能做出自己的 Web 接口服务!

🌟 学习编程最重要的就是“多练”。别怕出错,代码改着改着就对了;经验写着写着就积累了。

祝你学习愉快,早日成为优秀的后端开发者!💪

评论 0

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