py.lib.aw_web_tools

Yohn Y. 2025-03-09 Parent:f444d9fab8f8 Child:376688747096

12:1e2c40d95710 Go to Latest

py.lib.aw_web_tools/src/aw_web_tools/simple_template_helper.py

.. 1.202503.4 + Режим разработки для шаблонов

History
     1.1 --- a/src/aw_web_tools/simple_template_helper.py	Sun Mar 02 15:58:06 2025 +0300
     1.2 +++ b/src/aw_web_tools/simple_template_helper.py	Sun Mar 09 11:39:38 2025 +0300
     1.3 @@ -14,9 +14,11 @@
     1.4  
     1.5  
     1.6  class SimpleTmplWrapper(object):
     1.7 -    def __init__(self, file_name: str, **static_params):
     1.8 +    def __init__(self, file_name: str, devel_mode: bool = False, **static_params):
     1.9          """
    1.10          :param file_name: Имя файла шаблона, по которому его сможет отыскать класс ``SimpleTemplate``
    1.11 +        :param devel_mode: Режим разработки. Полезен когда шаблон постоянно изменяется в процессе работы над ним
    1.12 +                           и при каждом ответе его следует перечитывать
    1.13          :param static_params: Параметры, добавляемые в шаблон страницы при каждой генерации
    1.14          """
    1.15          try:
    1.16 @@ -26,10 +28,11 @@
    1.17              raise ValueError(f'Ошибка в инициализации шаблона: {e}')
    1.18  
    1.19          self.static_params = static_params
    1.20 +        self.devel_mode = devel_mode
    1.21  
    1.22      def __call__(self, **params):
    1.23          """\
    1.24 -        Сгенерировать страницу по шаблону, обёткой которого является этот класс
    1.25 +        Сгенерировать страницу по шаблону, обёрткой которого является этот класс
    1.26  
    1.27          :param params: Параметры шаблона, которые обновляют заданные при инициализации класса параметры и передаются
    1.28                      в метод ``SimpleTemplate.render()`` через параметры ключ-значение.
    1.29 @@ -37,6 +40,9 @@
    1.30          """
    1.31          kw_params = self.static_params.copy()
    1.32          kw_params.update(params)
    1.33 +        if self.devel_mode:
    1.34 +            self.tmpl.prepare()
    1.35 +
    1.36          return self.tmpl.render(**kw_params)
    1.37  
    1.38      @staticmethod