Skip to main content

aiohttp_jinja2

https://github.com/aio-libs/aiohttp-jinja2/workflows/CI/badge.svg https://codecov.io/gh/aio-libs/aiohttp-jinja2/branch/master/graph/badge.svg https://img.shields.io/pypi/v/aiohttp-jinja2.svg https://readthedocs.org/projects/aiohttp-jinja2/badge/?version=latest

jinja2 template renderer for aiohttp.web.

Installation

Install from PyPI:

pip install aiohttp-jinja2

Developing

Install requirement and launch tests:

pip install -r requirements-dev.txt
pytest tests

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'))

Import:

import aiohttp_jinja2
import jinja2

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

Using the function based web handlers:

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

Or for Class Based Views <https://aiohttp.readthedocs.io/en/stable/web_quickstart.html#class-based-views>:

class Handler(web.View):
    @aiohttp_jinja2.template('tmpl.jinja2')
    async def get(self):
        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.

Using a function based web handler:

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

Or, again, a class based view:

class Handler(web.View):
    async def get(self):
        context = {'name': 'Andrew', 'surname': 'Svetlov'}
        response = aiohttp_jinja2.render_template('tmpl.jinja2',
                                                  self.request,
                                                  context)
        response.headers['Content-Language'] = 'ru'
        return response

License

aiohttp_jinja2 is offered under the Apache 2 license.

CHANGES

1.6 (2023-11-18)

  • Switch to aiohttp.web.AppKey, and deprecate the old ‘static_root_url’ key.

  • Drop Python 3.7, add Python 3.12.

1.5.1 (2023-02-01)

  • Add support for Python 3.11.

  • Drop support for decorating non-async functions with @template (deprecated since 0.16).

1.5 (2021-08-21)

  • Drop support for jinaj2 <3. Add support for 3+.

  • Don’t require typing_extensions on Python 3.8+.

1.4.2 (2020-11-23)

  • Add CHANGES.rst to MANIFEST.in and sdist #402

1.4.1 (2020-11-22)

  • Document async rendering functions #396

1.4.0 (2020-11-12)

  • Fix type annotation for context_processors argument #354

  • Bump the minimal supported aiohttp version to 3.6.3 to avoid problems with uncompatibility between aiohttp and yarl

  • Add async rendering support #393

1.3.0 (2020-10-30)

  • Remove Any from template annotations #343

  • Fix type annotation for filters in aiohttp_jinja2.setup #330

  • Drop Python 3.5, support Python 3.9

1.2.0 (2019-10-21)

  • Add type hints #285

1.1.1 (2019-04-25)

  • Bump minimal supported jinja2 version to 2.10.1 to avoid security vulnerability problem.

1.1.0 (2018-09-05)

  • Bump minimal supported aiohttp version to 3.2

  • Use request.config_dict for accessing jinja2 environment. It allows to reuse jinja rendering engine from parent application.

1.0.0 (2018-03-12)

  • Allow context_processors to compose from parent apps #195

0.17.0 (2018-03-12)

  • Auto-cast int values in url() jinja function to str #191

0.16.0 (2018-02-12)

  • Pin to aiohttp 3.0+

  • Deprecate non-async handlers support

0.15.0 (2018-01-30)

  • Upgrade middleware to new style from aiohttp 2.3+ #182

  • Autoescape all templates by default #179

0.13.0 (2016-12-14)

  • Avoid subtle errors by copying context processor data #51

0.12.0 (2016-12-02)

  • Add autodeploy script #46

0.11.0 (2016-11-24)

  • Add jinja2 filters support #41

0.10.0 (2016-10-20)

  • Rename package to aiohttp-jinja2 #31

0.9.0 (2016-09-26)

  • Fix reason parameter in HTTPInternalServerError when template is not found #33

0.8.0 (2016-07-12)

  • Add ability to render template without context #28

0.7.0 (2015-12-30)

  • Add ability to decorate class based views (available in aiohttp 0.20) #18

  • Upgrade aiohttp requirement to version 0.20.0+

0.6.2 (2015-11-22)

  • Make app_key parameter from render_string coroutine optional

0.6.0 (2015-10-29)

  • Fix a bug in middleware (missed coroutine decorator) #16

  • Drop Python 3.3 support (switched to aiohttp version v0.18.0)

  • Simplify context processors initialization by adding parameter to setup()

0.5.0 (2015-07-09)

  • Introduce context processors #14

  • Bypass StreamResponse #15

0.4.3 (2015-06-01)

  • Fix distribution building: add manifest file

0.4.2 (2015-05-21)

  • Make HTTPInternalServerError exceptions more verbose on console output

0.4.1 (2015-04-05)

  • Documentation update

0.4.0 (2015-04-02)

  • Add render_string method

0.3.1 (2015-04-01)

  • Don’t allow non-mapping context

  • Fix tiny documentation issues

  • Change the library logo

0.3.0 (2015-03-15)

  • Documentation release

0.2.1 (2015-02-15)

  • Fix render_template function

0.2.0 (2015-02-05)

  • Migrate to aiohttp 0.14

  • Add status parameter to template decorator

  • Drop optional response parameter

0.1.0 (2015-01-08)

  • Initial release

Metadata

Release files for aiohttp-jinja2 1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aiohttp-jinja2 1.6
File Size Uploaded
aiohttp-jinja2-1.6.tar.gz 53.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aiohttp-jinja2 1.6
File Interpreter ABI Platform
aiohttp_jinja2-1.6-py3-none-any.whl Python 3 none any Details

Total release size: 64.8 kB

Release files / aiohttp-jinja2-1.6.tar.gz

Download URL aiohttp-jinja2-1.6.tar.gz
Size 53.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a3a7ff5264e5bca52e8ae547bbfd0761b72495230d438d05b6c0915be619b0e2
BLAKE2b-256 checksum
How to use checksums
e639da5a94dd89b1af7241fb7fc99ae4e73505b5f898b540b6aba6dc7afe600e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release files / aiohttp_jinja2-1.6-py3-none-any.whl

Download URL aiohttp_jinja2-1.6-py3-none-any.whl
Size 11.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0df405ee6ad1b58e5a068a105407dc7dcc1704544c559f1938babde954f945c7
BLAKE2b-256 checksum
How to use checksums
eb9065238d4246307195411b87a07d03539049819b022c01bcc773826f600138
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release history Release notifications | RSS feed

This release

1.6 This release

2 release files

1.5.1

2 release files

1.5

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.13.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.1.0

2 release files

0.0.2

2 release files

0.0.1

1 release file

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page