Skip to content

Instantly share code, notes, and snippets.

@gyndav
Created February 13, 2012 21:59
Show Gist options
  • Save gyndav/1820829 to your computer and use it in GitHub Desktop.
Save gyndav/1820829 to your computer and use it in GitHub Desktop.
Using jinja2 within web.py
#!/usr/bin/env python
import os
import web
from jinja2 import Environment,FileSystemLoader
# Router
urls = (
"/.*", "hello",
'/contact', 'rsvp'
)
app = web.application(urls, globals())
# Define template rendering with jinja2 without overriding native render
def render_template(template_name, **context):
extensions = context.pop('extensions', [])
globals = context.pop('globals', {})
jinja_env = Environment(
loader=FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates')),
extensions=extensions,
)
jinja_env.globals.update(globals)
return jinja_env.get_template(template_name).render(context)
# Controller
class hello:
def GET(self):
return render_template('index.html')
class rsvp:
def GET(self):
pass
if __name__ == "__main__":
app.run()
@aldoah0a
Copy link

aldoah0a commented Feb 2, 2014

Thank you exactly what I have been trying to do to avoid render.blah(foo=bar) 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment