РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
147 of 252 menu

Декоратор jinja2_view

Декоратор jinja2_view применяется к функции-обработчику маршрута и указывает, какой Jinja2-шаблон нужно отрендерить для ответа клиенту. Первым параметром передаётся имя или путь шаблона, дополнительными параметрами можно задать словарь с дополнительными переменными, имя функции-обёртки и другие настройки. Словарь, возвращаемый декорируемой функцией, становится контекстом шаблона.

Декоратор работает совместно с классом Jinja2Template и требует установленного пакета Jinja2.

Синтаксис

@jinja2_view(tpl, [tpl_dict], [adapter], [**kwargs])

Пример

Давайте отрендерим простейший Jinja2-шаблон для адреса '/':

from bottle import Bottle, jinja2_view app = Bottle() @app.route('/') @jinja2_view('index') def index(): return dict()

Файл шаблона views/index.jinja2:

hello

Результат выполнения кода:

<+html+> hello <-html+>

Пример

Давайте передадим переменную name в шаблон через возвращаемый словарь:

from bottle import Bottle, jinja2_view app = Bottle() @app.route('/user') @jinja2_view('user') def user(): return dict(name='abcde')

Файл шаблона views/user.jinja2:

Hello, {{ name }}!

Результат выполнения кода для адреса /user:

Hello, abcde!

Пример

Давайте отрендерим список items внутри шаблона с помощью цикла Jinja2:

from bottle import Bottle, jinja2_view app = Bottle() @app.route('/items') @jinja2_view('items') def items(): return dict(items=['a', 'b', 'c', 'd', 'e'])

Файл шаблона views/items.jinja2:

{% for item in items %} {{ item }} {% endfor %}

Результат выполнения кода для адреса /items:

a b c d e

Смотрите также

  • декоратор view,
    который рендерит SimpleTemplate-шаблон
  • функцию jinja2_template,
    которая рендерит Jinja2-шаблон без декоратора
  • класс Jinja2Template,
    который отвечает за работу с Jinja2-шаблонами
  • декоратор mako_view,
    который рендерит Mako-шаблон
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить