py.lib.aw_web_tools

Yohn Y. 2025-03-09 Parent:1e2c40d95710

13:376688747096 Go to Latest

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

.. 1.202503.5 - Убран devel_mode в конструкторе класса `SimpleTmplWrapper`, поскольку он бесполезен для поставленной задачи + Добавлена фабрака объектов. Этим методом имеется возможность перечитывать страницы шаблона при каждом вызове его. Это помогает в отладке шаблонов.

History
     1.1 --- a/src/aw_web_tools/simple_template_helper.py	Sun Mar 09 11:39:38 2025 +0300
     1.2 +++ b/src/aw_web_tools/simple_template_helper.py	Sun Mar 09 16:04:43 2025 +0300
     1.3 @@ -4,7 +4,7 @@
     1.4  ``Bottle.SimpleTemplate``
     1.5  """
     1.6  
     1.7 -from bottle import SimpleTemplate, TemplateError
     1.8 +from bottle import SimpleTemplate, TemplateError, static_file
     1.9  from os.path import join as p_join, isdir
    1.10  from os import getcwd
    1.11  from threading import RLock
    1.12 @@ -14,11 +14,9 @@
    1.13  
    1.14  
    1.15  class SimpleTmplWrapper(object):
    1.16 -    def __init__(self, file_name: str, devel_mode: bool = False, **static_params):
    1.17 +    def __init__(self, file_name: str, **static_params):
    1.18          """
    1.19          :param file_name: Имя файла шаблона, по которому его сможет отыскать класс ``SimpleTemplate``
    1.20 -        :param devel_mode: Режим разработки. Полезен когда шаблон постоянно изменяется в процессе работы над ним
    1.21 -                           и при каждом ответе его следует перечитывать
    1.22          :param static_params: Параметры, добавляемые в шаблон страницы при каждой генерации
    1.23          """
    1.24          try:
    1.25 @@ -28,7 +26,6 @@
    1.26              raise ValueError(f'Ошибка в инициализации шаблона: {e}')
    1.27  
    1.28          self.static_params = static_params
    1.29 -        self.devel_mode = devel_mode
    1.30  
    1.31      def __call__(self, **params):
    1.32          """\
    1.33 @@ -40,11 +37,26 @@
    1.34          """
    1.35          kw_params = self.static_params.copy()
    1.36          kw_params.update(params)
    1.37 -        if self.devel_mode:
    1.38 -            self.tmpl.prepare()
    1.39  
    1.40          return self.tmpl.render(**kw_params)
    1.41  
    1.42 +    @classmethod
    1.43 +    def init_devel_factory(cls, file_name: str, **static_params):
    1.44 +        """\
    1.45 +        Вместо объекта создаётся фабрика объектов, при кажом вызове которой инициализируется новый объект.
    1.46 +
    1.47 +        Помогает в работе над шаблонами
    1.48 +        :param file_name: Имя файла шаблона, по которому его сможет отыскать класс ``SimpleTemplate``
    1.49 +        :param static_params: Параметры, добавляемые в шаблон страницы при каждой генерации
    1.50 +        """
    1.51 +
    1.52 +        def func(*a, **kwa):
    1.53 +            obj = cls(file_name=file_name, **static_params)
    1.54 +
    1.55 +            return obj(*a, **kwa)
    1.56 +
    1.57 +        return func
    1.58 +
    1.59      @staticmethod
    1.60      def set_root(*a):
    1.61          """\