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

Модуль exthttp позволяет регистрировать скрипт в качестве модуля с помощью метода app.create_module

Пример создания простого модуля:

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

from exthttp import create_app, BaseHandler
from exthttp import http

app = create_app("ExampleApp")
app.create_module()

После вызова метода create_module в списке модулей появится ваше приложение

Аргументы метода create_module:

  • name (str, optional): Имя модуля, которое отображается в списке. Если не задано - используется имя скрипта.
  • icon_path (str, optional): Абсолютный путь или путь относительно папки скрипта или трассира до иконки модуля.
  • allow_multiple (bool, optional): Разрешить создавать несколько копий скрипта. По умолчанию False
    В данном режиме имя модуля - всегда равно имени скрипта не зависимо от параметра name

Давайте зададим нашему скрипту имя и добавим иконку.

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

from exthttp import create_app, BaseHandler
from exthttp import http

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

Осталось добавить обработчик запросов для главной страницы вашего приложения.
Для примера скопируем код из стандартного обработчика.

Итоговый код скрипта:

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

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):
    def get(self, request, *args, **kwargs):
        return http.HttpResponse("Hello world")