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

FastHTML中是否存在类似FastAPI Depends的依赖注入机制?

FastHTML中的依赖注入实现方式

FastHTML提供了和FastAPI Depends等效的依赖注入能力,语法上更简洁,主要有两种实现方式:

1. 直接在路由函数参数中声明依赖

将依赖函数作为参数的默认值传入,FastHTML会自动执行该函数并注入结果:

from fasthtml import FastHTML, Request
from sqlalchemy.orm import Session

# 定义数据库会话依赖
def get_db():
    db = Session()
    try:
        yield db
    finally:
        db.close()

app = FastHTML()

@app.get("/depends_test")
def getdbtest(req: Request, db: Session = get_db()):
    return db.query(Token).all()

2. 通过路由装饰器的deps参数批量指定依赖

如果需要给多个路由共享同一组依赖,可以在装饰器中用deps参数声明,FastHTML会自动解析并注入对应类型的参数:

@app.get("/depends_test", deps=[get_db])
def getdbtest(req: Request, db: Session):
    return db.query(Token).all()

两种方式都支持生成器模式的依赖函数(如上述get_db中的yield),用于资源的自动清理,行为和FastAPI的Depends完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:49:52