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:
- param filters:
extra jinja filters (link to docs <http://jinja.pocoo.org/docs/2.10/templates/#filters>).
- type filters:
- 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:
app –
aiohttp.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)