РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
155 of 252 menu

Класс BaseTemplate

Класс BaseTemplate представляет собой абстрактный базовый класс для всех шаблонизаторов в Bottle. Он определяет общий интерфейс, которому должны следовать конкретные реализации шаблонизаторов, такие как SimpleTemplate, MakoTemplate, Jinja2Template и другие. Класс предоставляет методы для подготовки шаблона, поиска и загрузки исходного кода шаблона, а также для его отрисовки с переданными данными. Кроме того, класс содержит атрибут global_config, который хранит глобальные настройки, общие для всех экземпляров шаблонов. Наследники переопределяют методы prepare, search и render, реализуя логику конкретного шаблонизатора.

Синтаксис

class BaseTemplate: global_config = {} def prepare(self, **options): ... def search(self, name, lookup, *args, **kwargs): ... def render(self, *args, **kwargs): ...

Атрибуты

Класс BaseTemplate содержит атрибут global_config. Это словарь, в котором хранятся глобальные настройки, применяемые ко всем экземплярам шаблонов. Значения из этого словаря автоматически передаются в методы prepare при инициализации шаблона.

Методы

Класс определяет три ключевых метода, которые должны быть переопределены в наследниках. Метод prepare вызывается при создании экземпляра шаблона и подготавливает его к работе. Метод search выполняет поиск исходного кода шаблона по заданному имени и списку путей поиска. Метод render выполняет непосредственную отрисовку шаблона с переданными переменными.

Пример

Давайте создадим собственный шаблонизатор на основе класса BaseTemplate. Для этого определим наследника и переопределим все три метода:

from bottle import BaseTemplate, template class MyTemplate(BaseTemplate): global_config = {'ext': '.tpl'} def prepare(self, **options): self.ext = options.get('ext', '.tpl') def search(self, name, lookup, *args, **kwargs): return 'Hello {{ name }}!' def render(self, *args, **kwargs): return self.source.replace('{{ name }}', kwargs.get('name', '')) tpl = MyTemplate() res = tpl.render(name='abcde') print(res)

Результат выполнения кода:

"Hello abcde!"

Пример

Давайте рассмотрим, как класс BaseTemplate взаимодействует с функцией template при использовании пользовательского шаблонизатора:

from bottle import BaseTemplate, template class SimpleRenderer(BaseTemplate): def prepare(self, **options): self.options = options def search(self, name, lookup, *args, **kwargs): return name def render(self, *args, **kwargs): return self.source.format(**kwargs) engine = SimpleRenderer() res = engine.render(name='user') print(res)

Результат выполнения кода:

"user"

Смотрите также

  • класс BaseTemplate,
    который является базовым классом для шаблонизаторов
  • метод render,
    который выполняет отрисовку шаблона
  • метод prepare,
    который подготавливает шаблон к работе
  • метод search,
    который выполняет поиск исходного кода шаблона
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить