翁真如 发表于 2025-6-26 20:38:06

实现一个python依赖注入demo,为了开发框架做准备

本文使用python实现一个依赖注入的框架的demo,实现了拆分数据实体和逻辑实体部分
一、动机::为什么要写一个python的依赖注入框架?这不是多此一举吗???

是,但也不完全是。
例如,在fastapi中就可以使用依赖注入来完成功能
这是一部分来自fastapi官方文档的代码
from typing import Union

from fastapi import Depends, FastAPI

app = FastAPI()


async def common_parameters(
    q: Union = None, skip: int = 0, limit: int = 100
):
    return {"q": q, "skip": skip, "limit": limit}


@app.get("/items/")
async def read_items(commons: dict = Depends(common_parameters)):
    return commons


@app.get("/users/")
async def read_users(commons: dict = Depends(common_parameters)):
    return commons在这部分代码中通过Depends将一个异步函数注入到路径操作函数,当然这段代码肯定很多人有疑问———为什么不直接在代码内调用对应函数.
@app.get("/items/")

async def read_items():

    return await common_parameters()直接 await common_parameters() 不就完事了, 为什么要搞这么多令人疑惑的东西。
如果仅仅是处理代码相关的依赖,用函数也可以实现依赖关系。
但是,
你实现函数调用的方法千千万,fastapi作为一个框架该如何定位依赖关系呢?,如果无法定位依赖关系,那么它就无法给你提供文档化以及各种缓存的服务。
依赖注入框架的意义其实就是通过一种标准化的依赖方案理清组件与组件之间的关系,从而为框架的建设铺路

其实,有看过spring框架,dotnetCore框架的设计的,应该对此都不陌生。
话由说回来了,我要实现一个依赖注入框架的原因其实就是我想试着自己实现一个python编程框架。名字我都想好了
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

铵滔 发表于 2025-11-27 04:46:40

yyds。多谢分享

后彼 发表于 2025-11-30 22:56:43

东西不错很实用谢谢分享

钦遭聘 发表于 2025-12-14 16:30:10

鼓励转贴优秀软件安全工具和文档!

季卓然 发表于 2026-1-14 02:53:33

热心回复!

诘琅 发表于 2026-1-18 12:54:24

懂技术并乐意极积无私分享的人越来越少。珍惜

列蜜瘘 发表于 2026-1-18 18:43:27

感谢分享

那虻 发表于 2026-1-21 17:42:48

鼓励转贴优秀软件安全工具和文档!

喳谍 发表于 2026-1-27 03:47:55

收藏一下   不知道什么时候能用到

莠畅缕 发表于 2026-1-29 06:18:18

感谢分享,学习下。

讲怔 发表于 2026-2-1 20:11:44

感谢,下载保存了

度阡舅 发表于 2026-2-2 02:05:39

东西不错很实用谢谢分享

遑盲 发表于 2026-2-3 03:18:55

感谢分享,下载保存了,貌似很强大

翳舀 发表于 2026-2-3 07:38:35

前排留名,哈哈哈

圣罩 发表于 2026-2-8 03:38:12

感谢,下载保存了

笙芝 发表于 2026-2-8 14:38:51

热心回复!

玲液 发表于 2026-2-8 20:40:00

谢谢楼主提供!

骆贵 发表于 2026-2-9 05:32:10

鼓励转贴优秀软件安全工具和文档!

锟及 发表于 2026-2-9 07:15:26

yyds。多谢分享

劳暄美 发表于 2026-2-9 11:27:37

东西不错很实用谢谢分享
页: [1] 2
查看完整版本: 实现一个python依赖注入demo,为了开发框架做准备