FastAPI 教程

12.8 压力测试与性能测试

FastAPI入门教程 | Python初学者快速上手Web API开发

FastAPI 教程

这是一个面向Python初学者的FastAPI入门教程,无需Web开发经验。通过生活化类比和简单示例,教你从零开始构建API,逐步建立信心,实现快速上手。

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

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

了解更多

FastAPI入门教程:面向Python初学者

介绍

FastAPI是一个现代、快速(高性能)的Python Web框架,专门用于构建API。如果你有过Python基础,但还没接触过Web开发,别担心!本教程将带你轻松入门,就像学习如何用菜单点餐一样简单:API定义了如何请求数据(点餐)和接收响应(上菜)。

准备工作

首先,确保你已安装Python(建议Python 3.7或更高版本)。然后,打开终端或命令提示符,运行以下命令安装FastAPI和其依赖的服务器工具(Uvicorn)。这就像为你的项目准备工具箱一样。

pip install fastapi uvicorn

如果安装成功,恭喜你,你已经迈出了第一步!

创建第一个FastAPI应用

现在,让我们动手构建你的第一个API。创建一个新文件,命名为 main.py(你可以用任何文本编辑器,如VS Code或记事本)。

第一步:导入FastAPI并创建应用实例

main.py 文件中,输入以下代码:

from fastapi import FastAPI

app = FastAPI()

这里的 app 就像是你的Web应用的中心控制器,负责处理所有请求。

第二步:定义你的第一个端点(Endpoint)

端点就像餐厅里的不同菜品,你可以通过特定路径访问它们。让我们添加一个根端点,当有人访问主页时返回一个简单消息。

@app.get("/")
def read_root():
    return {"Hello": "World"}
  • @app.get("/"):这是一个装饰器,告诉FastAPI当用户通过GET方法访问路径 "/"(即主页)时,应该执行下面的函数。
  • read_root() 函数:这是处理请求的函数,它返回一个JSON对象,内容是 {"Hello": "World"}。

完整的 main.py 文件现在看起来像这样:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

运行并测试你的应用

回到终端,确保你处于 main.py 文件所在的目录,然后运行以下命令启动服务器:

uvicorn main:app --reload
  • main:app:指定要运行的应用,其中 main 是文件名,app 是我们在代码中创建的FastAPI实例。
  • --reload:启用自动重载,这样当你修改代码时,服务器会自动重启,非常适合开发。

如果一切顺利,你会看到类似这样的输出:

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

现在,打开你的网络浏览器,访问 http://127.0.0.1:8000。你应该看到 {"Hello": "World"} 显示在页面上——这就是你的第一个API响应!成功时刻:你刚刚构建并运行了一个Web API,就像点亮了一盏小灯一样简单。

探索更多功能:路径参数

让我们让API更灵活一些。假设你想根据用户输入的路径返回个性化消息。这就像餐厅允许你指定要哪种披萨一样。

main.py 中添加另一个端点:

@app.get("/items/{item_id}")
def read_item(item_id: int):
    return {"item_id": item_id}
  • {item_id}:这是一个路径参数,用大括号括起来,表示它是可变的。
  • item_id: int:FastAPI会自动将路径中的字符串转换为整数,这类似于类型提示,让代码更安全易读。

现在,重新启动服务器(如果你用了 --reload,它会自动更新),然后访问 http://127.0.0.1:8000/items/42。你应该看到 {"item_id": 42}。试试其他数字,比如 http://127.0.0.1:8000/items/100,它都会工作!

添加查询参数

查询参数就像在点餐时添加额外要求,比如指定披萨的配料。让我们创建一个端点,接受一个可选的查询参数。

@app.get("/greet/")
def greet_user(name: str = "Guest"):
    return {"message": f"Hello, {name}!"}
  • name: str = "Guest":这是一个查询参数,如果用户不提供 name,默认值为 "Guest"。

访问 http://127.0.0.1:8000/greet/,你会看到 {"message": "Hello, Guest!"}。现在,添加查询参数:访问 http://127.0.0.1:8000/greet/?name=Alice,你应该看到 {"message": "Hello, Alice!"}。是不是很有趣?

自动API文档

FastAPI的一个强大功能是自动生成交互式API文档。访问 http://127.0.0.1:8000/docs,你会看到一个漂亮的界面,可以测试你的所有端点,就像在一个可视化的菜单上点餐一样。这让你能直观地探索和调试API,无需额外工具。

总结与下一步

恭喜你完成了这个FastAPI入门教程!你已经学会了:

  1. 安装FastAPI和设置环境。
  2. 创建第一个应用并运行服务器。
  3. 定义端点和使用路径参数、查询参数。
  4. 测试API并利用自动文档。

这只是一个开始。接下来,你可以探索更高级的功能,如数据验证、依赖注入或连接到数据库。继续练习,逐步构建更复杂的项目,比如一个简单的待办事项API。记住,每次成功运行代码,都是你Web开发之旅的小胜利。

如果你遇到问题,可以查看FastAPI官方文档或在社区寻求帮助。祝学习愉快,享受编码的乐趣!

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

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

获取工具包