Недавно я начал использовать aiohttp сервер и aiohttp_jinja2 Для моего личного проекта. Это очень полезно.
Моя версия Python – 3.8.2.
$ python --version Python 3.8.2 # requirements.txt aiohttp[speedups] aiohttp_jinja pip install aiohttp[speedups] pip install aiohttp_jinja
Каталог проектов похож на ниже
. └── app ├── main.py └── templates ├── index.html └── layout.html
aiohttp_jinja и aiohttp class Основанное представление может использоваться, как пример ниже.
# main.py import logging import pathlib import sys import jinja2 import aiohttp_jinja2 from aiohttp import web @aiohttp_jinja2.template("index.html") class HomeHandler(web.View): async def get(self): return {} async def post(self): form = await self.request.post() return {"name":form['name']} if __name__ == "__main__": logging.basicConfig(level=logging.DEBUG) app = web.Application() # setup jinja2 aiohttp_jinja2.setup(app, loader=jinja2.FileSystemLoader( 'templates' )) app.router.add_get('/', HomeHandler, name="index") app.router.add_post('/', HomeHandler) web.run_app(app)
aiohttp and jinja test My aiohttp jinja demo
{%block body%}{%endblock%}
{% extends "layout.html" %} {% set title = "Main" %} {% block body %}{% if name %}Form test extended from layout.html
My name is {{ name }}
{% endif %} {% endblock %}Оригинал: “https://dev.to/kemurayama/my-aiohttp-and-jinja2-app-sample-gai”