We will now need to expose our TemplateRenderer as a Nameko Dependency Provider. In the jinja2.py file we made earlier, update our imports to include the following:
from nameko.extensions import DependencyProvider
Then add the following code:
class Jinja2(DependencyProvider): def setup(self): self.template_renderer = TemplateRenderer( 'temp_messenger', 'templates' ) def get_dependency(self, worker_ctx): return self.template_renderer
This is extremely similar to our previous Redis dependency. We specify a setup method that creates an instance of our TemplateRenderer and a get_dependency method that will inject it into the worker.
This is now ready to be used by our WebServer.