3.4 模型配置:别名、排除字段等
Python初学者FastAPI入门教程:一步步学习Web API开发
专为Python初学者设计的FastAPI入门教程,从安装到构建第一个API,包含详细示例和成功时刻,帮助您轻松上手Web开发。
Python初学者FastAPI入门教程:轻松构建你的第一个Web API
介绍
FastAPI是一个现代、快速(高性能)的Web框架,用于构建API。对于初学者来说,它非常友好,因为代码简洁,自动生成文档,并且基于Python类型提示。
生活化类比:想象你开了一家餐厅,菜单就是你的API,FastAPI则是厨房,能快速、准确地处理订单。
准备工作
在开始之前,确保你安装了Python(建议3.7+)和pip。
安装FastAPI和Uvicorn
打开终端或命令提示符,运行以下命令:
pip install fastapi uvicorn
Uvicorn是ASGI服务器,用于运行FastAPI应用。
成功时刻1:安装完成后,输入pip list检查是否安装成功。
创建你的第一个FastAPI应用
让我们从一个最简单的例子开始。
-
创建一个新Python文件,比如
main.py。 -
输入以下代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, FastAPI!"}
解释:
- 导入FastAPI类。
- 创建一个
app实例。 - 使用
@app.get("/")装饰器定义一个路由,处理GET请求到根路径。 - 函数返回一个JSON响应。
成功时刻2:运行应用,看到输出。
在终端中运行:
uvicorn main:app --reload
打开浏览器访问http://127.0.0.1:8000,你应该看到{"message":"Hello, FastAPI!"}。
恭喜!你刚刚创建了第一个API。
探索基本路由
添加更多路由
在main.py中添加更多函数:
@app.get("/items/{item_id}")
def read_item(item_id: int):
return {"item_id": item_id}
这里,{item_id}是一个路径参数。
成功时刻3:访问http://127.0.0.1:8000/items/42,看到{"item_id":42}。
使用查询参数
查询参数允许在URL中添加额外信息。
@app.get("/items/")
def read_items(skip: int = 0, limit: int = 10):
return {"skip": skip, "limit": limit}
访问http://127.0.0.1:8000/items/?skip=5&limit=20,你会看到{"skip":5,"limit":20}。
解释:参数skip和limit是可选的,因为有默认值。
成功时刻4:尝试不同参数,观察结果。
请求体和模型
有时,我们需要从客户端接收数据。
定义一个模型
使用Pydantic模型来处理数据验证。
在main.py顶部添加:
from pydantic import BaseModel
class Item(BaseModel):
name: str
description: str = None
price: float
tax: float = None
创建一个POST路由
@app.post("/items/")
def create_item(item: Item):
return item
成功时刻5:使用工具如curl或Postman发送POST请求。
例如,发送JSON数据:{"name": "Widget", "price": 9.99},你会收到相同数据,验证通过。
自动API文档
FastAPI自动生成交互式API文档。
访问http://127.0.0.1:8000/docs,你会看到Swagger UI,可以测试所有API。
成功时刻6:在文档中点击“Try it out”,直接调用API。
运行和测试
继续使用Uvicorn运行应用。--reload参数使代码更改时自动重载。
总结
你学会了:
- 安装FastAPI和Uvicorn
- 创建基本应用和路由
- 使用路径和查询参数
- 处理请求体和模型
- 利用自动文档
FastAPI让Web开发变得简单有趣。继续实践,探索更多功能如中间件、认证等。
鼓励:不要害怕犯错,FastAPI的错误信息很友好。动手试试吧!