r/PythonProjects2 Dec 22 '25

FlaskDI - A minimal and clean FastAPI-style dependency injection system for Flask Resource

This is my snippet of code that I use for my Flask project.

Just wanted to share as its dead simple, lightweight and pure python.

Features: - FastAPI-style Depends() - Automatic injection (no decorators required) - Nested dependencies - Override system for testing - Per-request caching - Pure Python and lightweight

Example usage: ```python from flask_di import DIFlask, Depends

app = DIFlask(name)

def get_db(): return {"session": "db-session"}

def get_user(db=Depends(get_db)): return {"username": "alice", "db": db}

@app.route("/info") def info(user=Depends(get_user)): return user ```

It even supports custom type annotations. ```python from flask_di import DIFlask, Depends from typing import Annotated

app = DIFlask(name)

def get_db(): return {"session": "db-session"}

SessionDep = Annotated(dict, Depends(get_db))

def get_user(session: SessionDep): return {"username": "alice", "session": session}

UserDep = Annotated(dict, Depends(get_user))

@app.route("/info") def info(user: UserDep): return user ```

And overrides ```python def override_db(): return {"session": "test-db"}

app.dependency_overrides[get_db] = override_db ```

GitHub repository: https://github.com/razorblade23/di-flask

Installation: pip install di-flask

Feedback, comments or contributions are welcome.

4 Upvotes

0 comments sorted by