FastAPI 教程

14.2 数据库查询优化

Python FastAPI入门教程:快速构建Web API的完整指南

FastAPI 教程

这篇专为Python初学者设计的FastAPI入门教程,通过生活化类比和动手实践,教你从零开始快速构建Web API,包含简单易懂的步骤和即时成功的示例,建立学习信心。

推荐工具
PyCharm专业版开发必备

功能强大的Python IDE,提供智能代码补全、代码分析、调试和测试工具,提高Python开发效率。特别适合处理列表等数据结构的开发工作。

了解更多

FastAPI入门教程:为Python初学者打造的快速Web API指南

欢迎来到FastAPI世界!

想象一下,FastAPI就像是构建API的“快递小哥”——它快速、高效,帮你轻松传递数据,无需复杂操作。如果你已经掌握了基础Python语法,但从未接触过Web开发,别担心!这个教程将带你一步步进入FastAPI,用简单的方式打造自己的第一个Web API。我们的目标是:快速上手,看到结果,建立信心!

什么是FastAPI?

FastAPI是一个现代、快速的Python Web框架,专门用于构建API(应用程序接口)。它就像是你餐厅的点餐系统:你告诉它想吃什么(发送请求),它快速准备并返回食物(响应数据)。与其他框架相比,FastAPI更加高效和易于学习,特别适合初学者。

准备工作:安装和设置

在开始之前,确保你已经安装了Python(推荐版本3.7+)。如果还没有,去Python官网下载安装吧!

步骤1:安装FastAPI和Uvicorn

Uvicorn是运行FastAPI的服务器。打开你的命令行或终端,输入以下命令来安装它们:

pip install fastapi uvicorn

如果安装成功,你会看到一些输出信息,就像买了一堆新工具准备开工一样!

快速上手:创建你的第一个API

步骤2:编写第一个代码

创建一个新的Python文件,比如命名为 main.py(你可以用任何编辑器,比如VS Code或Notepad)。打开它,输入以下代码:

from fastapi import FastAPI  # 导入FastAPI模块

app = FastAPI()  # 创建一个FastAPI应用实例,就像开了一家餐厅

@app.get("/")  # 定义一个GET端点,访问网站根目录时触发
def read_root():
    return {"Hello": "World"}  # 返回一个简单的JSON响应

解释一下:

  • @app.get("/"):这就像是设置了一个“门牌号”,当有人访问你的网站首页时,就会执行下面的函数。
  • read_root() 函数:它返回一个Python字典,FastAPI会自动将其转换为JSON格式,这就是API的响应。

步骤3:运行你的API并看到第一个成功时刻!

保存文件后,回到命令行,导航到你的文件所在目录,然后输入:

uvicorn main:app --reload

解释:uvicorn 是服务器,main 是你的文件名(不带.py),app 是代码中的实例,--reload 表示代码变化时会自动重启,方便调试。

运行后,你会看到类似这样的输出:

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

恭喜!你的API服务器已经启动起来了!

步骤4:测试你的API

打开浏览器,输入 http://127.0.0.1:8000/ 并回车。你会立刻看到一个页面显示:

{"Hello": "World"}

这就是你的第一个API响应!是不是很简单?你刚刚创建了一个可以返回“Hello World”的Web API——这是一个巨大的成功时刻,你已经踏入了Web开发的门槛!

深入一点:添加更多功能

现在,让我们让API变得更实用一些。

步骤5:创建一个带参数的端点

修改 main.py 文件,添加以下代码:

@app.get("/users/{user_id}")  # 定义一个带路径参数的端点
def read_user(user_id: int):  # FastAPI会自动验证user_id是整数
    return {"user_id": user_id, "message": "User found"}

保存文件,服务器会自动重载(感谢 --reload 选项!)。现在,在浏览器访问 http://127.0.0.1:8000/users/123。你会看到:

{"user_id": 123, "message": "User found"}

生活化类比:这就像是给餐厅服务员一个桌号(user_id),他返回对应的菜单信息。你已经学会了如何处理动态数据!

步骤6:处理POST请求和JSON数据

API不仅可以获取数据,还可以接收数据。让我们添加一个创建用户的端点。首先,导入Pydantic模块(FastAPI用它来验证数据):

from pydantic import BaseModel

class User(BaseModel):  # 定义一个用户模型,就像填写表格
    name: str  # 名字必须是字符串
    age: int   # 年龄必须是整数

@app.post("/users/")  # 定义一个POST端点
def create_user(user: User):  # FastAPI会自动从请求体解析JSON
    return {"message": "User created successfully", "user": user}

保存后,你需要一个工具来测试POST请求。推荐使用浏览器扩展(如Postman)或在线工具,但为了方便,我们可以用Python代码测试。创建一个新文件 test.py

import requests

url = "http://127.0.0.1:8000/users/"
data = {"name": "Alice", "age": 25}
response = requests.post(url, json=data)
print(response.json())

运行 test.py,你会看到输出:

{"message": "User created successfully", "user": {"name": "Alice", "age": 25}}

另一个成功时刻!你刚刚学会了如何接收和验证JSON数据,就像是餐厅接收订单一样。

探索更多:自动文档和交互式UI

FastAPI有一个很酷的功能:自动生成API文档。在浏览器访问 http://127.0.0.1:8000/docs,你会看到一个漂亮的交互式界面(基于Swagger UI)。这里可以测试所有端点,无需额外工具——像是一个自助点餐机,让你轻松探索API!

试试在文档页面上点击你的端点,输入数据,然后点击“Execute”来测试。你会看到实时响应,这让你感觉更像一个专业的开发者!

总结和下一步

恭喜你完成了FastAPI的入门之旅!你已经学会了:

  • 安装FastAPI和运行服务器。
  • 创建简单的GET和POST端点。
  • 处理路径参数和JSON数据。
  • 使用自动文档进行测试。

所有这些都用生活化的类比解释,比如将端点比作门牌号、数据验证比作填写表格,帮助你轻松理解。

下一步建议

  • 尝试添加更多端点,比如更新或删除用户。
  • 学习FastAPI的依赖注入、错误处理等高级功能。
  • 查看官方文档(fastapi.tiangolo.com)获取更多示例和深入指南。

记住,Web开发并不难——FastAPI让它变得有趣和可及。继续实践,你很快就能构建出更复杂的应用!如果有问题,多动手试试,或者在线社区寻求帮助。祝你学习愉快!

开发工具推荐
Python开发者工具包

包含虚拟环境管理、代码格式化、依赖管理、测试框架等Python开发全流程工具,提高开发效率。特别适合处理复杂数据结构和算法。

获取工具包