Класс Jinja2Template
Класс Jinja2Template наследуется от базового класса
BaseTemplate и обеспечивает интеграцию шаблонизатора
Jinja2 в приложение Bottle. Первым параметром передаётся
исходный код шаблона в виде строки, вторым - словарь
с настройками окружения Jinja2. Класс применяется для
создания объекта шаблона, который затем можно отрендерить
с переданными данными.
Синтаксис
Jinja2Template(source, [env])
Пример
Давайте создадим простой шаблон Jinja2 и отрендерим его с переданным именем:
from bottle import Jinja2Template
tpl = Jinja2Template('Hello, {{ name }}!')
res = tpl.render(name='user')
print(res)
Результат выполнения кода:
"Hello, user!"
Пример
Давайте применим Jinja2Template вместе с классом
Bottle и вернём отрендеренный шаблон из маршрута:
from bottle import Bottle, Jinja2Template
app = Bottle()
@app.route('/')
def index():
tpl = Jinja2Template('Hello, {{ name }}!')
return tpl.render(name='user')
app.run()
Результат выполнения кода для адреса /:
Hello, user!
Пример
Давайте отрендерим список, переданный в шаблон:
from bottle import Jinja2Template
source = '''{% for item in items %}{{ item }} {% endfor %}'''
tpl = Jinja2Template(source)
res = tpl.render(items=[1, 2, 3, 4, 5])
print(res)
Результат выполнения кода:
"1 2 3 4 5 "
Пример
Давайте передадим дополнительные настройки окружения Jinja2 вторым параметром:
from bottle import Jinja2Template
tpl = Jinja2Template(
'Hello, {{ name }}!',
{'trim_blocks': True}
)
res = tpl.render(name='abcde')
print(res)
Результат выполнения кода:
"Hello, abcde!"
Смотрите также
-
функцию
jinja2_template,
которая создаёт и рендерит шаблон Jinja2 за один вызов -
декоратор
jinja2_view,
который автоматически рендерит результат функции через Jinja2 -
класс
MakoTemplate,
который представляет адаптер для шаблонизатора Mako -
функцию
template,
которая рендерит шаблон через SimpleTemplate