"""`Resource` - Flask request scope example.""" import sys from dependency_injector import containers, providers from dependency_injector.wiring import inject, Provide, Closing 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=[sys.modules[__name__]]) app = Flask(__name__) app.container = container app.add_url_rule('/', 'index', view_func=index_view) if __name__ == '__main__': app.run()