API

Describes the module API with detailed explanations of functions parameters.

setup(app, *args, app_key=APP_KEY, context_processors=(),
filters=None, default_helpers=True, **kwargs)

Function responsible for initializing templating system on application. This

 much be called before freezing or running the application in order to use

aiohttp-jinja.

param app:

aiohttp.web.Application instance to initialize template system on.

param str app_key:

optional key that will be used to access templating environment from application dictionary object. Defaults to aiohttp_jinja2_environment.

param context_processors:

list of Middlewares. These are context processors used to rewrite or inject some variables during the processing of a request.

type context_processors:

list

param filters:

extra jinja filters (link to docs <http://jinja.pocoo.org/docs/2.10/templates/#filters>).

type filters:

list

param bool default_helpers:

whether to use default global helper in templates provided by package aiohttp_jinja2.helpers or not.

param *args:

positional arguments passed into environment constructor.

param **kwargs:

any arbitrary keyword arguments you want to pass to jinja2.Environment environment.

aiohttp_jinja2.get_env(app, *, app_key)[source]

Get aiohttp-jinja2 environment from an application instance by key.

Parameters:
  • appaiohttp.web.Application instance to get variables from.

  • app_key (str) – optional key that will be used to access templating environment from application dictionary object. Defaults to aiohttp_jinja2_environment.

aiohttp_jinja2.template(template_name, *, app_key, encoding, status)[source]

Behaves as a decorator around view functions accepting template name that should be used to render the response. Supports both synchronous and asynchronous functions.

Parameters:
  • template_name (str) – name of the template file that will be looked up by the loader. Raises a 500 error in case template was not found.

  • app_key (str) – optional key that will be used to access templating environment from application dictionary object. Defaults to aiohttp_jinja2_environment.

  • encoding (str) – encoding that will be set as a charset property on the response for rendered template, default to utf-8.

Params int status:

http status code that will be set on resulting response.

Example of usage

Simple initialization:

import jinja2
import aiohttp_jinja2
from aiohttp import web


app = web.Application()
aiohttp_jinja2.setup(
   app,
   loader=jinja2.FileSystemLoader('/path/to/templates/folder'),
)
render_string(template_name, request, context, *,
app_key=APP_KEY)

Renders template specified and returns resulting string.

Parameters:
  • template_name (str) – Name of the template you want to render. Usually it’s a filename without extension on your filesystem.

  • request (aiohttp.web.Request) – aiohttp request associated with an application where aiohttp-jinja rendering is configured.

  • context (dict) – dictionary used as context when rendering the template.

  • app_key (str) – optional key that will be used to access templating environment from application dictionary object. Defaults to aiohttp_jinja2_environment.

render_template(template_name, request, context, *,
app_key=APP_KEY, encoding='utf-8', status=200)
Parameters:
  • template_name (str) – Name of the template you want to render.

  • request (aiohttp.web.Request) – aiohttp request associated with an application where aiohttp-jinja rendering is configured.

  • context (dict) – dictionary used as context when rendering the template.

  • app_key (str) – optional key that will be used to access templating environment from application dictionary object. Defaults to aiohttp_jinja2_environment.

  • status (int) – http status code that will be set on resulting response.

Example of usage

Assuming the initialization from the example about has been done:

async def handler(request):
   context = {'foo': 'bar'}
   response = aiohttp_jinja2.render_template('tmpl.jinja2',
                                             request,
                                             context)
   return response

app.router.add_get('/tmpl', handler)