Как предоставить иерархические или вложенные модули пользовательского интерфейса для экземпляра приложения Tornado? - PullRequest
0 голосов
/ 18 мая 2019

Просматривая документы в учебных целях, я не могу найти много информации о том, как решить мою проблему, в основном мы можем обеспечить точное сопоставление модулей пользовательского интерфейса с экземпляром приложения следующим образом:

from tornado.web import Application
from .features.components import Button

modules = {
    "ui_modules" : [
        Button
    ]
}


def create_app():

    return Application([
        url(r"/", MainHandler)
    ], template_path = os.path.join(os.path.dirname(__file__), "templates"),
        compiled_template_cache = False,
        ** modules)

Мыможет также предоставить синглтон:

modules = {
    "ui_modules" : Button
}

Но я ищу вложенные модули, что-то похожее на это:

modules = {
    "ui_modules" : {
        "components" : {
            "button" : Button,
            "select" : Select,
            "form" : Form
        },
        ...
    }
}

В конечном счете, чтобы иметь возможность ссылаться на мой модуль от родителяфайл шаблона (main.html) как таковой (похожий, но еще не совсем там):

{% module components["button"](text, color = "red") %}

Есть ли возможность сделать это, потому что Торнадо на самом деле не нравится такой тип ввода, как он может 'распознать вложенные свойства / модули?

...