API

Describes the module API with detailed explanations of functions parameters.

aiohttp_jinja2.setup(app, *args, app_key=APP_KEY, context_processors=(), filters=None, default_helpers=True, **kwargs)[source]

Function responsible for initializing templating system on application. It must be called before freezing or running the application in order to use aiohttp-jinja.

Parameters
  • appaiohttp.web.Application instance to initialize template system on.

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

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

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

  • default_helpers (bool) – whether to use default global helper in templates provided by package aiohttp_jinja2.helpers or not.

  • *args – positional arguments passed into environment constructor.

  • **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'),
)
aiohttp_jinja2.render_string(template_name, request, context, *, app_key=APP_KEY)[source]

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.

async aiohttp_jinja2.render_string_async(template_name, request, context, *, app_key=APP_KEY)[source]

Async version of render_string().

Replaces render_string() when enable_async=True is passed to the setup() call.

See render_string() for parameter usage.

aiohttp_jinja2.render_template(template_name, request, context, *, app_key=APP_KEY, encoding='utf-8', status=200)[source]
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.

async aiohttp_jinja2.render_template_async(template_name, request, context, *, app_key=APP_KEY, encoding='utf-8', status=200)[source]

Async version of render_template().

Replaces render_template() when enable_async=True is passed to the setup() call.

See render_template() for parameter usage.

Example of usage

Assuming the initialization from the example above 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)