15.3 Docker Compose 多服务编排
FastAPI入门教程 for Python Beginners: Quick Start Guide
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.
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的旅程中创造更多“成功时刻”!