- FastAPI 教程
- FastAPI - 首页
- FastAPI - 简介
- FastAPI - Hello World
- FastAPI - OpenAPI
- FastAPI - Uvicorn
- FastAPI - 类型提示
- FastAPI - IDE 支持
- FastAPI - REST 架构
- FastAPI - 路径参数
- FastAPI - 查询参数
- FastAPI - 参数验证
- FastAPI - Pydantic
- FastAPI - 请求体
- FastAPI - 模板
- FastAPI - 静态文件
- FastAPI - HTML 表单模板
- FastAPI - 访问表单数据
- FastAPI - 上传文件
- FastAPI - Cookie 参数
- FastAPI - 头部参数
- FastAPI - 响应模型
- FastAPI - 嵌套模型
- FastAPI - 依赖项
- FastAPI - CORS
- FastAPI - CRUD 操作
- FastAPI - SQL 数据库
- FastAPI - 使用 MongoDB
- FastAPI - 使用 GraphQL
- FastAPI - Websockets
- FastAPI - FastAPI 事件处理器
- FastAPI - 挂载子应用
- FastAPI - 中间件
- FastAPI - 挂载 Flask 应用
- FastAPI - 部署
- FastAPI 有用资源
- FastAPI - 快速指南
- FastAPI - 有用资源
- FastAPI - 讨论
FastAPI - CRUD 操作
REST 架构使用 HTTP 动词或方法对资源进行操作。POST、GET、PUT 和 DELETE 方法分别执行创建、读取、更新和删除操作。
在下面的示例中,我们将使用 Python 列表作为内存数据库并在其上执行 CRUD 操作。首先,让我们设置一个 FastAPI 应用对象并声明一个名为 Book 的 Pydantic 模型。
from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() data = [] class Book(BaseModel): id: int title: str author: str publisher: str
使用 @app.post() 装饰器填充此模型的对象,并将其追加到书籍列表中(声明书籍列表的数据)。
@app.post("/book") def add_book(book: Book): data.append(book.dict()) return data
在 Swagger UI 中,执行此操作函数几次并添加一些数据。
服务器的 JSON 响应显示了迄今为止添加的书籍列表。
要检索列表,请定义一个绑定到 @app.get() 装饰器的操作函数,如下所示:
@app.get("/list") def get_books(): return data
要检索具有其 id 作为路径参数的书籍,请定义 get() 操作装饰器和 get_book() 函数,如下所示:
@app.get("/book/{id}") def get_book(id: int): id = id - 1 return data[id]
/list 路由检索所有书籍。
另一方面,在“/book/1”路由中使用“id”作为路径参数。
将检索 id=1 的书籍,这可以在 Swagger UI 的服务器响应中看到。
接下来,定义 @app.put() 装饰器,该装饰器修改数据列表中的对象。此装饰器也为 id 字段提供路径参数。
@app.put("/book/{id}") def add_book(id: int, book: Book): data[id-1] = book return data
在 Swagger UI 中检查此操作函数。将 id 设置为 1,并在请求体中将发布者的值更改为 BPB。
执行后,响应显示列表中 id=1 的对象已更新为新值。
最后,我们定义 @app.delete() 装饰器以删除与路径参数对应的对象。
@app.delete("/book/{id}") def delete_book(id: int): data.pop(id-1) return data
将 id 设置为 1 作为路径参数并执行函数。
执行后,列表现在仅显示两个对象。
广告