Python框架-FastAPI

FastAPI是一个现代、快速(高性能)的web框架,用于构建API。

官网: https://fastapi.tiangolo.com/
源码: https://github.com/fastapi/fastapi

安装

# 安装 FastAPI
pip install fastapi
# 安装 Uvicorn(用于运行 ASGI 服务器)
pip install uvicorn

创建一个main.py

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

使用 Uvicorn 运行应用

uvicorn main:app --reload

# main: 指的是 main.py 文件(不需要写 .py 扩展名)。
# app: 指的是在 main.py 文件中创建的 FastAPI 实例。
# --reload: 启用自动重载,使代码更改立即生效。

打开浏览器,访问 http://127.0.0.1:8000,将看到以下 JSON 响应:

{"Hello": "World"}

简单样例

from fastapi import FastAPI
from pydantic import BaseModel
from typing import Optional

app = FastAPI()


# 定义数据模型
class Item(BaseModel):
    name: str
    description: str = None


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.post("/items/")
def create_item(item: Item):
    return item


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
    return {"item_id": item_id, "q": q}


@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    return {"item_name": item.name, "item_id": item_id}

交互式文档

FastAPI 提供了自动生成的交互式 API 文档。启动应用后,访问以下 URL:

直接可以在页面中测试API接口,比如发送一个 POST 请求到 /items/,在Request body中编辑

{
  "name": "test",
  "description": "test"
}

点击Execute,可以在Responses中看到响应结果

posted @ 2024-08-03 10:39  rustling  阅读(8)  评论(0编辑  收藏  举报