Package: aiohttp-jinja2
aiohttp_jinja2jinja2template renderer foraiohttp.web.InstallationInstall from PyPI:pip install aiohttp-jinja2DevelopingInstall requirement and launch tests:pip install -r requirements-dev.txt
pytest testsUsageBefore template rendering you have to setupjinja2 environmentfirst:app=web.Application()aiohttp_jinja2.setup(app,loader=jinja2.FileSystemLoader('/path/to/templates/folder'))Import:importaiohttp_jinja2importjinja2After that you may to use template engine in yourweb-handlers. The
most convenient way is to decorate aweb-handler.Using the function based web handlers:@aiohttp_jinja2.template('tmpl.jinja2')defhandler(request):return{'name':'Andrew','surname':'Svetlov'}Or forClass Based Views
<https://aiohttp.readthedocs.io/en/stable/web_quickstart.html#class-based-views>:classHandler(web.View):@aiohttp_jinja2.template('tmpl.jinja2')asyncdefget(self):return{'name':'Andrew','surname':'Svetlov'}On handler call theaiohttp_jinja2.templatedecorator will pass
returned dictionary{'name': 'Andrew', 'surname': 'Svetlov'}into
template namedtmpl.jinja2for getting resulting HTML text.If you need more complex processing (set response headers for example)
you may callrender_templatefunction.Using a function based web handler:asyncdefhandler(request):context={'name':'Andrew','surname':'Svetlov'}response=aiohttp_jinja2.render_template('tmpl.jinja2',request,context)response.headers['Content-Language']='ru'returnresponseOr, again, a class based view:classHandler(web.View):asyncdefget(self):context={'name':'Andrew','surname':'Svetlov'}response=aiohttp_jinja2.render_template('tmpl.jinja2',self.request,context)response.headers['Content-Language']='ru'returnresponseLicenseaiohttp_jinja2is offered under the Apache 2 license.CHANGES1.6 (2023-11-18)Switch toaiohttp.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 requiretyping_extensionson Python 3.8+.1.4.2 (2020-11-23)Add CHANGES.rst to MANIFEST.in and sdist #4021.4.1 (2020-11-22)Document async rendering functions #3961.4.0 (2020-11-12)Fix type annotation forcontext_processorsargument #354Bump the minimal supportedaiohttpversion to 3.6.3 to avoid problems
with uncompatibility betweenaiohttpandyarlAdd async rendering support #3931.3.0 (2020-10-30)Remove Any from template annotations #343Fix type annotation for filters inaiohttp_jinja2.setup#330Drop Python 3.5, support Python 3.91.2.0 (2019-10-21)Add type hints #2851.1.1 (2019-04-25)Bump minimal supportedjinja2version to 2.10.1 to avoid security vulnerability problem.1.1.0 (2018-09-05)Bump minimal supportedaiohttpversion to 3.2Userequest.config_dictfor accessingjinja2environment. It
allows to reuse jinja rendering engine from parent application.1.0.0 (2018-03-12)Allow context_processors to compose from parent apps #1950.17.0 (2018-03-12)Auto-castintvalues inurl()jinja function tostr#1910.16.0 (2018-02-12)Pin to aiohttp 3.0+Deprecate non-async handlers support0.15.0 (2018-01-30)Upgrade middleware to new style from aiohttp 2.3+ #182Autoescape all templates by default #1790.13.0 (2016-12-14)Avoid subtle errors by copying context processor data #510.12.0 (2016-12-02)Add autodeploy script #460.11.0 (2016-11-24)Add jinja2 filters support #410.10.0 (2016-10-20)Rename package to aiohttp-jinja2 #310.9.0 (2016-09-26)Fix reason parameter in HTTPInternalServerError when template is not
found #330.8.0 (2016-07-12)Add ability to render template without context #280.7.0 (2015-12-30)Add ability to decorate class based views (available in aiohttp 0.20) #18Upgrade aiohttp requirement to version 0.20.0+0.6.2 (2015-11-22)Make app_key parameter from render_string coroutine optional0.6.0 (2015-10-29)Fix a bug in middleware (missed coroutine decorator) #16Drop Python 3.3 support (switched to aiohttp version v0.18.0)Simplify context processors initialization by adding parameter tosetup()0.5.0 (2015-07-09)Introduce context processors #14Bypass StreamResponse #150.4.3 (2015-06-01)Fix distribution building: add manifest file0.4.2 (2015-05-21)Make HTTPInternalServerError exceptions more verbose on console
output0.4.1 (2015-04-05)Documentation update0.4.0 (2015-04-02)Addrender_stringmethod0.3.1 (2015-04-01)Don’t allow non-mapping contextFix tiny documentation issuesChange the library logo0.3.0 (2015-03-15)Documentation release0.2.1 (2015-02-15)Fixrender_templatefunction0.2.0 (2015-02-05)Migrate to aiohttp 0.14Addstatusparameter to template decoratorDrop optionalresponseparameter0.1.0 (2015-01-08)Initial release