You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastAPI中on_event弃用警告未解决求助:更换代码仍触发警告

解决FastAPI + Tortoise-ORM的on_event弃用警告

问题根源

警告并非来自你手写的@app.on_event代码,而是Tortoise-ORM的fastapi contrib模块内部(tortoise/contrib/fastapi/__init__.py)仍在使用已被FastAPI弃用的on_event方法。即使你替换了自己的启动事件,只要之前用了register_tortoise函数,就会触发内部的警告。

解决方法:改用FastAPI Lifespan上下文管理器

完全弃用register_tortoise和@app.on_event,用FastAPI官方推荐的Lifespan机制处理Tortoise的初始化与销毁:

  1. 导入所需模块
from fastapi import FastAPI
from tortoise import Tortoise
from contextlib import asynccontextmanager
  1. 定义Lifespan上下文
# 替换原有的register_tortoise和@app.on_event
@asynccontextmanager
async def lifespan(app: FastAPI):
    # 启动逻辑:初始化ORM并生成表结构
    await Tortoise.init(config=TORTOISE_ORM)
    await Tortoise.generate_schemas()
    yield  # 应用运行期间保持连接
    # 关闭逻辑:断开所有数据库连接
    await Tortoise.close_connections()
  1. 创建FastAPI实例时绑定Lifespan
app = FastAPI(lifespan=lifespan)

注意事项

  • 务必删除所有register_tortoise调用,否则仍会触发内部警告
  • 此方式完全遵循FastAPI 0.100+版本的官方规范,彻底消除弃用警告

内容的提问来源于stack exchange,提问作者gorba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 14:10:05