py.lib.aw_web_tools
13:376688747096 Browse Files
.. 1.202503.5 - Убран devel_mode в конструкторе класса `SimpleTmplWrapper`, поскольку он бесполезен для поставленной задачи + Добавлена фабрака объектов. Этим методом имеется возможность перечитывать страницы шаблона при каждом вызове его. Это помогает в отладке шаблонов.
setup.py src/aw_web_tools/simple_template_helper.py
1.1 --- a/setup.py Sun Mar 09 11:39:38 2025 +0300 1.2 +++ b/setup.py Sun Mar 09 16:04:43 2025 +0300 1.3 @@ -2,7 +2,7 @@ 1.4 1.5 setup( 1.6 name='aw_web_tools', 1.7 - version='1.202503.4', 1.8 + version='1.202503.5', 1.9 packages=['aw_web_tools'], 1.10 package_dir={'aw_web_tools': 'src/aw_web_tools'}, 1.11 description='Инструментарий для Web-разработки'
2.1 --- a/src/aw_web_tools/simple_template_helper.py Sun Mar 09 11:39:38 2025 +0300 2.2 +++ b/src/aw_web_tools/simple_template_helper.py Sun Mar 09 16:04:43 2025 +0300 2.3 @@ -4,7 +4,7 @@ 2.4 ``Bottle.SimpleTemplate`` 2.5 """ 2.6 2.7 -from bottle import SimpleTemplate, TemplateError 2.8 +from bottle import SimpleTemplate, TemplateError, static_file 2.9 from os.path import join as p_join, isdir 2.10 from os import getcwd 2.11 from threading import RLock 2.12 @@ -14,11 +14,9 @@ 2.13 2.14 2.15 class SimpleTmplWrapper(object): 2.16 - def __init__(self, file_name: str, devel_mode: bool = False, **static_params): 2.17 + def __init__(self, file_name: str, **static_params): 2.18 """ 2.19 :param file_name: Имя файла шаблона, по которому его сможет отыскать класс ``SimpleTemplate`` 2.20 - :param devel_mode: Режим разработки. Полезен когда шаблон постоянно изменяется в процессе работы над ним 2.21 - и при каждом ответе его следует перечитывать 2.22 :param static_params: Параметры, добавляемые в шаблон страницы при каждой генерации 2.23 """ 2.24 try: 2.25 @@ -28,7 +26,6 @@ 2.26 raise ValueError(f'Ошибка в инициализации шаблона: {e}') 2.27 2.28 self.static_params = static_params 2.29 - self.devel_mode = devel_mode 2.30 2.31 def __call__(self, **params): 2.32 """\ 2.33 @@ -40,11 +37,26 @@ 2.34 """ 2.35 kw_params = self.static_params.copy() 2.36 kw_params.update(params) 2.37 - if self.devel_mode: 2.38 - self.tmpl.prepare() 2.39 2.40 return self.tmpl.render(**kw_params) 2.41 2.42 + @classmethod 2.43 + def init_devel_factory(cls, file_name: str, **static_params): 2.44 + """\ 2.45 + Вместо объекта создаётся фабрика объектов, при кажом вызове которой инициализируется новый объект. 2.46 + 2.47 + Помогает в работе над шаблонами 2.48 + :param file_name: Имя файла шаблона, по которому его сможет отыскать класс ``SimpleTemplate`` 2.49 + :param static_params: Параметры, добавляемые в шаблон страницы при каждой генерации 2.50 + """ 2.51 + 2.52 + def func(*a, **kwa): 2.53 + obj = cls(file_name=file_name, **static_params) 2.54 + 2.55 + return obj(*a, **kwa) 2.56 + 2.57 + return func 2.58 + 2.59 @staticmethod 2.60 def set_root(*a): 2.61 """\