Skip to content

alexander-travov/aiohttp_jinja2

 
 

Repository files navigation

aiohttp_jinja2

jinja2 template renderer for aiohttp.web.

Usage

Before template rendering you have to setup jinja2 environment first:

app = web.Application()
aiohttp_jinja2.setup(app,
    loader=jinja2.FileSystemLoader('/path/to/templates/folder'))

After that you may to use template engine in your web-handlers. The most convinient way is to decorate web-handler:

@aiohttp_jinja2.template('tmpl.jinja2')
def handler(request):
    return {'name': 'Andrew', 'surname': 'Svetlov'}

On handler call the aiohttp_jinja2.template decorator will pass returned dictionary {'name': 'Andrew', 'surname': 'Svetlov'} into template named tmpl.jinja2 for getting resulting HTML text.

If you need more complex processing (set response headers for example) you may call render_template function:

@asyncio.coroutine
def handler(request):
    context = {'name': 'Andrew', 'surname': 'Svetlov'}
    response = aiohttp_jinja2.render_template('tmpl.jinja2',
                                              request,
                                              context)
    response.headers['Content-Language'] = 'ru'
    return response

License

aiohttp_jinja2 is offered under the Apache 2 license.

About

jinja2 template renderer for aiohttp.web

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 93.9%
  • Makefile 6.1%