using mako templates and beaker in google app engine
Dec 01, 2009
apparently some people have problems implementing beaker to gae. you can easily access to beaker session like this.session = self.request.environ['beaker.session']
if you want to implement a login_required decorator you can code something like the following;
def login_required(func):
def wrapper(self, *args, **kwargs):
session = self.request.environ['beaker.session']
if 'username' not in session:
self.error(403)
return func(self, *args, **kwargs)
return wrapper
mako templates in gae
i'm a big fan of mako templates. whenever i code a site i always use mako templates. however gae doesn't support mako by default, so if you want to use mako in your applications you can code a mako renderer class something like the following so you can get rid of theifnotequal and such like nonsense.
from mako.lookup import TemplateLookup
class RenderMako(object):
def __init__(self, *args, **kwargs):
self._lookup = TemplateLookup(*args, **kwargs)
def __getattr__(self, template_name, **kwargs):
template_name = '%s.html' % template_name
template = self._lookup.get_template(template_name)
return template.render(**kwargs)