All Projects → aio-libs → Aiohttp Jinja2

aio-libs / Aiohttp Jinja2

Licence: apache-2.0
jinja2 template renderer for aiohttp.web

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Aiohttp Jinja2

Aiozipkin
Distributed tracing instrumentation for asyncio with zipkin
Stars: ✭ 161 (-10.56%)
Mutual labels:  asyncio, aiohttp
Aiohttp Session
Web sessions for aiohttp.web
Stars: ✭ 171 (-5%)
Mutual labels:  asyncio, aiohttp
Backendschool2019
Приложение для практического руководства по разработке бекенд-сервисов на Python (на основе вступительного испытания в Школу бэкенд‑разработки Яндекса)
Stars: ✭ 129 (-28.33%)
Mutual labels:  asyncio, aiohttp
Aiohttp Sse
Server-sent events support for aiohttp
Stars: ✭ 125 (-30.56%)
Mutual labels:  asyncio, aiohttp
Gain
Web crawling framework based on asyncio.
Stars: ✭ 2,002 (+1012.22%)
Mutual labels:  asyncio, aiohttp
Aioelasticsearch
aioelasticsearch-py wrapper for asyncio
Stars: ✭ 127 (-29.44%)
Mutual labels:  asyncio, aiohttp
Owllook
owllook-小说搜索引擎
Stars: ✭ 2,163 (+1101.67%)
Mutual labels:  asyncio, aiohttp
Ruia
Async Python 3.6+ web scraping micro-framework based on asyncio
Stars: ✭ 1,366 (+658.89%)
Mutual labels:  asyncio, aiohttp
Aiohttp Cors
CORS support for aiohttp
Stars: ✭ 173 (-3.89%)
Mutual labels:  asyncio, aiohttp
Aioinflux
Asynchronous Python client for InfluxDB
Stars: ✭ 142 (-21.11%)
Mutual labels:  asyncio, aiohttp
Tgfilestream
A Telegram bot that can stream Telegram files to users over HTTP.
Stars: ✭ 113 (-37.22%)
Mutual labels:  asyncio, aiohttp
Kubernetes asyncio
Python asynchronous client library for Kubernetes http://kubernetes.io/
Stars: ✭ 147 (-18.33%)
Mutual labels:  asyncio, aiohttp
Sockjs
SockJS Server
Stars: ✭ 105 (-41.67%)
Mutual labels:  asyncio, aiohttp
Aiohttp Apispec
Build and document REST APIs with aiohttp and apispec
Stars: ✭ 172 (-4.44%)
Mutual labels:  asyncio, aiohttp
Aioauth
Asynchronous OAuth 2.0 framework and provider for Python 3
Stars: ✭ 102 (-43.33%)
Mutual labels:  asyncio, aiohttp
Aiohttp
Asynchronous HTTP client/server framework for asyncio and Python
Stars: ✭ 11,972 (+6551.11%)
Mutual labels:  asyncio, aiohttp
Raven Aiohttp
An aiohttp transport for raven-python
Stars: ✭ 92 (-48.89%)
Mutual labels:  asyncio, aiohttp
Rororo
Implement aiohttp.web OpenAPI 3 server applications with schema first approach.
Stars: ✭ 95 (-47.22%)
Mutual labels:  asyncio, aiohttp
Pymxget
mxget的Python实现
Stars: ✭ 136 (-24.44%)
Mutual labels:  asyncio, aiohttp
Python Simple Rest Client
Simple REST client for python 3.6+
Stars: ✭ 143 (-20.56%)
Mutual labels:  asyncio, aiohttp

aiohttp_jinja2

.. image:: https://github.com/aio-libs/aiohttp-jinja2/workflows/CI/badge.svg :target: https://github.com/aio-libs/aiohttp-jinja2/actions?query=workflow%3ACI .. image:: https://codecov.io/gh/aio-libs/aiohttp-jinja2/branch/master/graph/badge.svg :target: https://codecov.io/gh/aio-libs/aiohttp-jinja2 .. image:: https://img.shields.io/pypi/v/aiohttp-jinja2.svg :target: https://pypi.python.org/pypi/aiohttp-jinja2 .. image:: https://readthedocs.org/projects/aiohttp-jinja2/badge/?version=latest :target: http://aiohttp-jinja2.readthedocs.io/en/latest/?badge=latest

jinja2_ template renderer for aiohttp.web__.

.. _jinja2: http://jinja.pocoo.org

.. _aiohttp_web: https://aiohttp.readthedocs.io/en/latest/web.html

__ 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:

.. code-block:: python

app = web.Application()
aiohttp_jinja2.setup(app,
    loader=jinja2.FileSystemLoader('/path/to/templates/folder'))

Import:

.. code-block:: python

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:

.. code-block:: python

@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>:

.. code-block:: python

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:

.. code-block:: python

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:

.. code-block:: python

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].