"""`Resource` - Flask request scope example.""" from dependency_injector import containers, providers from dependency_injector.wiring import Closing, Provide, inject from flask import Flask, current_app class Service: ... def init_service() -> Service: print("Init service") yield Service() print("Shutdown service") class Container(containers.DeclarativeContainer): service = providers.Resource(init_service) @inject def index_view(service: Service = Closing[Provide[Container.service]]): assert service is current_app.container.service() return "Hello World!" container = Container() container.wire(modules=[__name__]) app = Flask(__name__) app.container = container app.add_url_rule("/", "index", view_func=index_view) if __name__ == "__main__": app.run()