FastAPI CRUD操作

FastAPI CRUD操作

REST架构使用HTTP动词或方法对资源进行操作。POST、GET、PUT和DELETE方法分别执行CREATE、READ、UPDATE和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用户界面中,执行这个操作函数几次并添加一些数据。

FastAPI - CRUD操作

服务器的JSON响应显示了到目前为止添加的书籍列表。

FastAPI - CRUD操作

要检索该列表,请定义一个与 @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 路线检索所有的书。

FastAPI - CRUD操作

另一方面,在”/book/1 “路由中使用 “id “作为路径参数。

FastAPI - CRUD操作

id=1 “的书将被检索出来,在Swagger UI的服务器响应中可以看到。

FastAPI - CRUD操作

接下来,定义 @app.put() 装饰器,修改数据列表中的一个对象。这个装饰器也有一个id字段的路径参数。

@app.put("/book/{id}")
def add_book(id: int, book: Book):
   data[id-1] = book
   return data

在swagger UI中检查这个操作函数。给出id=1,并在请求体中把publisher的值改为BPB。

FastAPI - CRUD操作

当执行时,响应显示列表中id=1的对象以新的值更新。

FastAPI - CRUD操作

最后,我们定义@app.delete()装饰器来删除一个与路径参数对应的对象。

@app.delete("/book/{id}")
def delete_book(id: int):
   data.pop(id-1)
   return data

给id=1作为路径参数并执行该函数。

FastAPI - CRUD操作

执行后,列表中现在只显示两个对象

FastAPI - CRUD操作

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程