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:
app –
aiohttp.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:
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'),
)
- 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()
whenenable_async=True
is passed to thesetup()
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.
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)