FastAPI 是一个现代、快速(高性能)、基于标准 Python 类型提示的 Web 框架。它是一个用于构建 API 的异步框架,基于 Starlette 和 Pydantic 构建。以下是使用 FastAPI 的一些基本步骤:
-
安装 FastAPI 和 Uvicorn:
pip install fastapi uvicorn
-
创建一个 FastAPI 应用:
创建一个 Python 文件,比如main.py
,并添加以下内容:from fastapi import FastAPIapp = FastAPI()@app.get("/") def read_root():return {"Hello": "World"}
-
运行应用:
在终端中运行以下命令启动 FastAPI 应用:uvicorn main:app --reload # 指定ip port uvicorn main:app --reload --port 8000 --host 0.0.0.0
这将启动一个开发服务器,并在 http://127.0.0.1:8000/ 上运行你的应用,当然可以使用 `python main.py` 这样的方式启动 FastAPI 应用。实际上,`uvicorn` 只是 FastAPI 推荐的 ASGI(Asynchronous Server Gateway Interface)服务器之一,但你也可以使用其他 ASGI 服务器,或者在需要时选择同步的服务器。
-
访问 API 文档:
FastAPI 自动生成交互式 API 文档,可以通过浏览器访问,地址是 http://127.0.0.1:8000/docs。 -
定义路径参数:
FastAPI 使用标准 Python 类型提示来定义路径参数。例如:@app.get("/items/{item_id}") def read_item(item_id: int, q: str = None):return {"item_id": item_id, "q": q}
在上述例子中,
item_id
是一个路径参数,而q
是一个查询参数。 -
其他接口:
# GET 请求 @app.get("/") def read_root():return {"message": "Hello, World!"}# POST 请求 @app.post("/items/") def create_item(item: dict):return {"item": item}# PUT 请求 @app.put("/items/{item_id}") def update_item(item_id: int, item: dict):return {"item_id": item_id, "updated_item": item}# DELETE 请求 @app.delete("/items/{item_id}") def delete_item(item_id: int):return {"message": f"Item {item_id} has been deleted"}
-
请求体和响应模型:
FastAPI 支持使用 Pydantic 模型来定义请求体和响应模型。例如:from pydantic import BaseModelclass Item(BaseModel):name: strdescription: str = Noneprice: floattax: float = None@app.post("/items/") def create_item(item: Item):return item
上述例子中,
Item
是一个 Pydantic 模型,用于验证请求体,而create_item
函数接受一个Item
对象作为参数。
这只是 FastAPI 的基础使用方式,它还有很多其他功能,如依赖注入、安全性、验证、WebSocket 支持等。你可以查阅 FastAPI 的官方文档以获取更多详细信息。