FastAPI 教程

15.3 Docker Compose 多服务编排

FastAPI入门教程 for Python Beginners: Quick Start Guide

FastAPI 教程

This beginner-friendly FastAPI tutorial is designed for Python learners with no web development experience. Follow our step-by-step guide with simple, hands-on examples and everyday analogies to build your first API quickly and build confidence in web development.

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

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

了解更多

FastAPI入门教程:快速构建你的第一个Web应用

欢迎来到FastAPI的世界!

如果你刚学完Python基础,想试试web开发,但觉得它复杂难懂,别担心!FastAPI是你的最佳起点。想象一下,它就像一个智能的餐厅服务员:你(用户)给出订单(请求),它迅速处理并送来美食(响应)。简单、快速、高效!

在这个教程中,我会带你一步步动手实践,从零开始创建你的第一个API,确保你在每个阶段都有“成功时刻”。让我们开始吧!

第一部分:准备工作——安装FastAPI

首先,确保你已经安装了Python(建议3.7或更高版本)。然后,打开你的终端或命令提示符,输入以下命令来安装FastAPI和Uvicorn(一个用于运行FastAPI的服务器)。

pip install fastapi uvicorn

成功时刻:看到“Successfully installed”消息?太棒了!你已经迈出了第一步。

第二部分:创建你的第一个API——Hello World!

现在,让我们写一个简单的脚本来体验FastAPI的魅力。创建一个新文件,比如 main.py,并输入以下代码:

from fastapi import FastAPI

app = FastAPI()  # 这就像创建一个新的餐厅

@app.get("/")  # 这是一个“路由”,告诉服务员当有人访问首页时做什么
async def read_root():
    return {"Hello": "World"}  # 服务员会返回这个简单的问候

保存文件。然后,在终端中运行:

uvicorn main:app --reload

解释uvicorn 是服务器,main:app 告诉它从 main.py 文件加载 app--reload 让它在代码更改时自动重启,方便调试。

成功时刻:打开浏览器,访问 http://127.0.0.1:8000,你应该看到 {"Hello": "World"} 显示在页面上!恭喜,你的第一个API已经上线了!

第三部分:添加更多功能——用路径参数和查询参数

让我们扩展一下API。在 main.py 中添加以下代码:

@app.get("/items/{item_id}")  # {item_id} 是一个路径参数,就像餐厅菜单上的不同菜品编号
async def read_item(item_id: int, q: str = None):  # q 是查询参数,就像顾客点的额外要求
    return {"item_id": item_id, "q": q}

现在,重启服务器(如果没自动重启,按Ctrl+C停止再运行)。访问 http://127.0.0.1:8000/items/42,你会看到 {"item_id": 42, "q": null}。试试 http://127.0.0.1:8000/items/42?q=hello,看到 q 变成了 "hello"?太酷了!

类比:路径参数就像是餐厅的桌号(固定),查询参数就像是顾客点的饮品(可选)。

成功时刻:你刚刚创建了一个动态API,可以根据不同输入返回不同结果!

第四部分:处理数据请求——使用Pydantic模型

FastAPI使用Pydantic来验证数据,这就像服务员检查订单是否正确。添加以下代码:

首先,导入Pydantic:

from pydantic import BaseModel
from typing import Optional

定义一个数据模型:

class Item(BaseModel):
    name: str
    price: float
    is_offer: Optional[bool] = False  # 可选字段,默认False

然后,创建一个POST请求来处理数据:

@app.post("/items/")
async def create_item(item: Item):  # FastAPI会自动从请求体解析item
    return {"item_name": item.name, "item_price": item.price, "offer": item.is_offer}

保存并重启。现在,你可以用工具如 curl 或浏览器扩展(如Postman)来测试。例如,发送一个POST请求到 http://127.0.0.1:8000/items/ 并设置请求体为JSON:{"name": "Laptop", "price": 999.99}

成功时刻:FastAPI会自动验证数据,如果输入错误(比如价格不是数字),它会返回错误信息,帮你省去调试时间!

第五部分:查看自动生成的文档——另一个惊喜

FastAPI会自动创建交互式API文档。访问 http://127.0.0.1:8000/docs,你会看到一个漂亮的界面,可以直接测试你的API!

成功时刻:不需要额外编写文档,FastAPI已经为你准备好了,点击试试看你的端点!

总结和下一步

你已经学会了FastAPI的基础:安装、创建简单API、处理参数和数据验证。回顾一下:

  • FastAPI就像智能服务员,快速响应。
  • 路径和查询参数让API灵活。
  • Pydantic模型确保数据安全。
  • 自动文档是你的好帮手。

这只是一个开始!接下来,你可以探索:

  • 添加数据库连接(比如SQLAlchemy)。
  • 实现用户认证。
  • 部署你的API到服务器。

保持动手实践,多用类比思考,你会很快爱上web开发。如果有问题,FastAPI社区很友好,随时求助。

祝你编码愉快,继续在FastAPI的旅程中创造更多“成功时刻”!

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

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

获取工具包