Хороший способ передать переменные для общих элементов в шаблоны Mako?

StackOverflow https://stackoverflow.com/questions/1830042

  •  11-09-2019
  •  | 
  •  

Вопрос

Я использую функции наследования Mako, чтобы выделить общие элементы страницы, такие как верхний и нижний колонтитулы, в шаблон «base.mako».Контроллеры, специфичные для страниц, используют свои собственные шаблоны, которые наследуют base.mako.

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

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

Заранее спасибо!

Это было полезно?

Решение

У вас есть два варианта объектно-ориентированного дизайна для контроллеров страниц.

Общие функции могут обрабатываться двумя способами.

  • Наследование.Все контроллеры страниц являются подклассами общего класса, который предоставляет общие атрибуты.

  • Делегация.Все контроллеры страниц являются частью конвейера, в котором какой-то общий процесс (до или после контроллера страниц) передает дополнительную информацию.

Вы должны выбрать один.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top