Дизайн шаблона Django

Я пытаюсь получить визуальное представление шаблонов проекта Django в качестве иерархии.

Основная идея состоит в том, чтобы получить список имен шаблонов, когда машина загрузки шаблонов по умолчанию вернется (т.е. соблюдение TEMPLATE_DIRS, TEMPLATE_LOADERS и т.д.), а затем анализ шаблонов, ищущих {% block %} и {% extends %}, чтобы создать древовидную структуру. Наконец, используйте grapviz для визуализации.

Я не уверен, что это жизнеспособный подход. Но только для начала, как я могу загрузить шаблоны так, как я описал?

Или возможно, что-то подобное уже существует?

1 ответ

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

Таким образом, если вы хотите grep все используемые шаблоны в проекте, вам нужно отсканировать каждое место, которое могут проверять загрузчики в TEMPLATE_LOADERS, для создания возможных записей для последующей проверки нижнего уровня. Это будет сложно, некоторые серверы загрузчиков могут даже не разрешать операцию выборки по каталогу. Или вы можете анализировать файлы вида и URL-адресов внутри INSTALLED_APPS для grep-имен шаблонов, но это работает только с жестко запрограммированным именем шаблона и еще сложнее. Кроме того, могут быть шаблоны, загруженные из жестко закодированной строки...

Для данного имени шаблона его проще загрузить шаблон и проверить узлы внутри него, так же как и вашу идею. Вы можете проверить django.template.base, чтобы узнать, как это работает.

Кроме того, вы можете воспользоваться панелью инструментов django-debug, чтобы отобразить шаблоны, используемые для запроса. И, ИМО, сохраняя структуру шаблона плоской, простой и, таким образом, определяемой, легче достичь.

licensed under cc by-sa 3.0 with attribution.