Yaat has built-in support for serving Templates. It comes with Jinja2 templating engine out of the box.

from yaat import Yaat
from yaat.templating import Jinja2Template

app = Yaat()
templates = Jinja2Template(directory="templates")

async def about(request):
   return templates.TemplateResponse("index.html", {"name": "Stranger"})

Then create a directory templates and write index.html inside.


    <title>Yaat Template</title>

    <h1>Hello {{name}}</h1>

Custom Template Engine

You can also implement/configure your templating engine.

First, you will need to import BaseTemplate to override.

from yaat.responses import HTMLResponse
from yaat.templating import BaseTemplate

class CustomTemplate(BaseTemplate):
    def get(self, *args, **kwargs) -> bytes:
        # To read HTML file and return as bytes

    def TemplateResponse(self, *args, **kwargs) -> HTMLResponse:
       # call self.get() to get bytes and return as HTMLResponse