"""Shared handler base classes.""" import tornado.web class BasePageHandler(tornado.web.RequestHandler): """Base handler that injects ``base_url`` into all templates.""" def static_url(self, path, **kwargs): url = super().static_url(path, **kwargs) base_url = self.application.settings.get("base_url", "/") if base_url != "/": url = base_url + url.lstrip("/") return url def get_template_namespace(self): ns = super().get_template_namespace() ns["base_url"] = self.application.settings.get("base_url", "/") return ns