BaseService没有注入db,在其子类中加上@inject是否就相当于子类注入了db?
BaseService: class BaseService: """基础服务,完善数据库的基础增删改查功能,简化代码""" db: SQLAlchemy def create(self, model: Any, **kwargs) -> Any: """根据传递的模型类+键值对信息创建数据库记录""" with self.db.auto_commit(): model_instance = model(**kwargs) self.db.session.add(model_instance) return model_instance
其子类如下:
@inject @dataclass class ApiToolService(BaseService): """自定义API插件服务""" db: SQLAlchemy def update_api_tool_provider(self, provider_id: UUID, req: UpdateApiToolProviderReq): """根据传递的provider_id+req更新对应的API工具提供者信息"""
子类中加入了@inject是否就相当于在子类中实例化了db?
还是说是在app启动的时候实例化了db?因为app.py中看到了这些代码:
# 将env加载到环境变量中 dotenv.load_dotenv() conf = Config() injector = Injector([ExtensionModule]) app = Http( __name__, conf=conf, db=injector.get(SQLAlchemy), migrate=injector.get(Migrate), router=injector.get(Router), ) if __name__ == '__main__': app.run(debug=True)
8
收起
正在回答 回答被采纳积分+1
AI Agent 全栈开发工程师
- 参与学习 669 人
- 解答问题 474 个
全流程打造你自己的(Coze/Dify)低代码智能体开发平台;2025年入行正当时,企业急需,人才稀缺,竞争小;无论入行还是转行,首选口碑好课,门槛低、成长高
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星