Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

jinja2 template renderer for aiohttp.web (http server for asyncio)

Project Description

aiohttp_jinja2

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
py.test 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'))

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.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

0.14.0 (2017-09-09)

  • Support url and static context functions #97

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
Release History

Release History

This version
History Node

0.14.0

History Node

0.13.0

History Node

0.12.0

History Node

0.8.0

History Node

0.7.0

History Node

0.6.2

History Node

0.6.1

History Node

0.6.0

History Node

0.5.0

History Node

0.4.3

History Node

0.4.2

History Node

0.4.1

History Node

0.4.0

History Node

0.3.1

History Node

0.3.0

History Node

0.2.1

History Node

0.1.0

History Node

0.0.2

History Node

0.0.1

History Node

0.0.0

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
aiohttp_jinja2-0.14.0-py3-none-any.whl (8.0 kB) Copy SHA256 Checksum SHA256 py3 Wheel Sep 9, 2017
aiohttp-jinja2-0.14.0.tar.gz (50.0 kB) Copy SHA256 Checksum SHA256 Source Sep 9, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting