socketify.py/examples/helpers/templates.py

36 wiersze
1.1 KiB
Python
Czysty Zwykły widok Historia

2022-11-16 19:28:46 +00:00
# Simple example of mako and jinja2 template plugin for socketify.py
from mako.template import Template
from mako.lookup import TemplateLookup
from mako import exceptions
from jinja2 import Environment, FileSystemLoader
2022-11-16 19:28:46 +00:00
class Jinja2Template:
2022-11-16 19:28:46 +00:00
def __init__(self, searchpath, encoding="utf-8", followlinks=False):
self.env = Environment(
loader=FileSystemLoader(searchpath, encoding, followlinks)
)
2022-11-16 19:28:46 +00:00
# You can also add caching and logging strategy here if you want ;)
def render(self, templatename, **kwargs):
try:
template = self.env.get_template(templatename)
return template.render(**kwargs)
except Exception as err:
return str(err)
2022-11-16 19:28:46 +00:00
class MakoTemplate:
def __init__(self, **options):
self.lookup = TemplateLookup(**options)
2022-11-16 19:28:46 +00:00
# You can also add caching and logging strategy here if you want ;)
def render(self, templatename, **kwargs):
try:
template = self.lookup.get_template(templatename)
return template.render(**kwargs)
except Exception as err:
2022-11-16 19:28:46 +00:00
return exceptions.html_error_template().render()