py.lib.aw_web_tools
2025-03-09
Parent:1e2c40d95710
py.lib.aw_web_tools/src/aw_web_tools/simple_template_helper.py
.. 1.202503.5 - Убран devel_mode в конструкторе класса `SimpleTmplWrapper`, поскольку он бесполезен для поставленной задачи + Добавлена фабрака объектов. Этим методом имеется возможность перечитывать страницы шаблона при каждом вызове его. Это помогает в отладке шаблонов.
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 """\