DeprecationWarning:on_event is deprecated, use lifespan event handlers instead.

发布时间 2023-11-23 23:44:49作者: 小鸣Cycling

问题说明:

fastapi 启动之前执行代码,旧版本使用的是@app.on_event("startup"),不过在已经不推荐使用

@app.on_event("startup")
async def startup_db():
    create_all()

问题处理

通过 lifespan event配合contextlib实现。
修改后代码:

from contextlib import asynccontextmanager

@asynccontextmanager
async def lifespan(app: FastAPI):
    print("启动前执行")
    create_all()
    yield
    print("关闭后前执行")

app = FastAPI(lifespan=lifespan)