Дерево страниц

Модуль "из коробки" поддерживает работу с Mako Templates.

Подробнее про Mako Templates по ссылке: https://www.makotemplates.org/

Создадим простое приложение, как в статье 2. Регистрация модуля в Trassir и добавим шаблон для главной страницы.

Шаблон необходимо разместить в папке скрипта /templates/index.html

Код шаблона ниже:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Trassir App</title>
</head>
<body>
  Hello <b>${user}</b>, today is <i>${today}</i>
</body>
</html>

Теперь создадим обработчик где укажем название нашего шаблона в атрибут __tempalte__ класса
Для отображения шаблона необходимо, чтобы метод get возвращал self.render() 
При этом self.render() принимает любые keyword аргументы, которые мы сможем использовать в нашем шабоне.

Для примера передадим в шаблон имя текущего пользователя и дату/время, для отображения в шаблоне.

# ExampleApp
"""
<parameters>
    <company>DSSL</company>
    <author>AATrubilin</author>
    <title>ExampleApp</title>
    <version>1.0.0</version>
</parameters>
"""
import datetime

from exthttp import create_app, BaseHandler

app = create_app("ExampleApp")
app.create_module(
    name="My First App", icon_path="manual/en/gtk-dialog-important.png",
)


@app.route("index")
class IndexHandler(BaseHandler):
    __template__ = "index.html"

    def get(self, request, *args, **kwargs):
        return self.render(
            user=request.user.name,
            today=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
        )