FastAPI:一个python的web框架

下载方式

pip install fastapi uvicorn

示例

from fastapi import FastAPI

# 创建 FastAPI 实例
app = FastAPI(title="简单API", version="1.0")

# ---------- 定义数据模型 ----------
class User(BaseModel):
    id:str
    name: str
    price: float

#模拟数据库
users=[]

#路由
@app.get("/")  #一个路由对应一个功能,下方函数返回什么内容,该路由即接受什么内容
def root():
    return {"message": "Hello FastAPI"}

访问该路由

查数据和增加数据

#获取数据
@app.get("/user",response_model=list[User])  #用User的数据模型,按照list[]形式
def get_users():
    return users    #返回数据库内容

#传数据,JSON格式
@app.post("/user",response_model=User)  #用User的数据模型
def create_users(user:User):
    users.append(user.dict())   #将客户端传输的格式按照要求格式进行,加入数据库
    return user    #返回数据库内容

更新和删除数据

#更新数据
@app.put("/user/{user_id}",response_model=User)  
def update_users(user_id:int,user:User):
    for index,existing_user in enumerate(users):
        if existing_user.id == user_id:
            users[index]=user.dict()
            return {"message":"User deleted"}
    raise HTTPException(status_code=404,detail="User not found")

#删除数据
@app.delete("/user/{user_id}")  
def delete_users(user_id:int):
    for index,existing_user in enumerate(users):
        if existing_user.id == user_id:
            users.pop(index)
            return {"message":"User deleted"}
    raise HTTPException(status_code=404,detail="User not found")

enumerate(users) 是什么?

  • enumerate(users) 是 Python 内置函数,它会同时生成两个值

    • 索引(从 0 开始递增)

    • 当前元素(即列表中的用户对象)

  •  

    第一次迭代:index = 0existing_user = users[0]
    第二次迭代:index = 1existing_user = users[1]

GET/POST/PUT/DELETE  /users    路由接口

response_model  指定返回类型

生成API文档

fastapi基于openapi,自动生成api文档

访问 http://127.0.0.1:8000/docs      可在浏览器测试api

http://127.0.0.1:8000/redoc    适合看api结构和参数

注:个人学习记录,如有问题可指正

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐