Torinja
Integrate Tornado Web Framework and Jinja2 Templates
Requires Python >= 3.3 or Python 2.7.
Installation
pip install torinja
Usage
Configuration
Use torinja's Jinja2Env
as the template_loader
of your Application
.
from tornado.web import Application
from torinja import Jinja2Env
from jinja2 import PackageLoader
application = Application(
handlers=[],
template_loader=Jinja2Env(
loader=PackageLoader('myapp', 'templates'), # You can pass any jinja2 loaders
),
**other_settings
)
Jinja2Env
is a jinja2.Environment
subclass, so it accepts all the options to jinja2.Environment
.
The only difference is that autoescape
is set to True
by default.
Handlers
In your handlers, you can call RequestHandler.render
or RequestHandler.render_string
as you would do with tornado templates.
class MyHandler(RequestHandler):
def get(self):
self.render('index.html', tornado='awesome', jinja2='rocks')
Templates
To use xsrf_form_html
in your jinja2
templates, use it as a variable.
<form>
{{ xsrf_form_html }}
<input type="text" name="text">
<!-- ... -->
</form>
Tests
To run the tests:
python tests.py