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

Метод template_test

Метод template_test применяется к приложению Flask и добавляет в окружение Jinja пользовательскую проверку. Первым параметром передаётся имя проверки, под которым она будет доступна в шаблоне. Вторым параметром можно передать функцию проверки. Если второй параметр не указан, метод возвращает декоратор.

Синтаксис

app.template_test(name, [test_function])

Пример

Давайте зарегистрируем проверку even, которая определяет, является ли число чётным:

from flask import Flask, render_template app = Flask(__name__) @app.template_test('even') def is_even(number): return number % 2 == 0 @app.route('/') def index(): return render_template('index.html', number=4)

Теперь используем проверку в шаблоне:

{% if number is even %} <p>even</p> {% else %} <p>odd</p> {% endif %}

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

<p>even</p>

Пример

Давайте зарегистрируем проверку startswith без использования декоратора, передав функцию вторым параметром:

from flask import Flask, render_template app = Flask(__name__) def starts_with(value, prefix): return value.startswith(prefix) app.template_test('startswith', starts_with) @app.route('/') def index(): return render_template('index.html', text='abcde')

Теперь используем проверку в шаблоне:

{% if text is startswith('abc') %} <p>yes</p> {% else %} <p>no</p> {% endif %}

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

<p>yes</p>

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

  • метод template_filter,
    который регистрирует фильтр для Jinja-шаблонов
  • метод template_global,
    который регистрирует глобальную функцию для Jinja-шаблонов
  • атрибут jinja_env,
    который хранит окружение Jinja приложения
  • класс Flask,
    который представляет приложение Flask
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить