Skip to content

Instantly share code, notes, and snippets.

@stavinsky
Created October 1, 2014 07:21
Show Gist options
  • Save stavinsky/12234ba03be54308bbb4 to your computer and use it in GitHub Desktop.
Save stavinsky/12234ba03be54308bbb4 to your computer and use it in GitHub Desktop.
CherryPy jinja2 decorator
# -*- coding: utf-8 -*-
"""
using:
class Root(BaseController):
''' Cherrypy Root class
'''
@jinja_template('main_page.html')
def index(self, lang=''):
user = 'user'
title = 'title'
return dict(
user=user,
title=title
)
"""
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('%s/templates' % os.environ['OPENSHIFT_REPO_DIR'])) # put your own templates dir
def jinja_template(template_name):
def decorator(func):
def wrapper(*args, **kwargs):
tmpl = env.get_template(template_name)
return tmpl.render(**func(*args, **kwargs))
return wrapper
return decorator
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment