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

Метод context_processor

Метод context_processor применяется к приложению Flask и регистрирует функцию-обработчик, которая автоматически вызывается перед рендерингом любого шаблона. Функция должна возвращать словарь, ключи которого становятся переменными, доступными в Jinja-шаблонах. Это удобно для передачи данных, нужных на всех страницах сайта, например имени пользователя или настроек сайта.

Синтаксис

@app.context_processor def func(): return dict

Пример

Давайте добавим переменную site_name во все шаблоны:

from flask import Flask, render_template app = Flask(__name__) @app.context_processor def inject_site_name(): return {'site_name': 'My Site'} @app.route('/') def index(): return render_template('index.html')

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

<p>{{ site_name }}</p>

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

<p>My Site</p>

Пример

Давайте добавим несколько переменных и используем их в шаблоне:

from flask import Flask, render_template app = Flask(__name__) @app.context_processor def inject_globals(): return { 'user': 'abcde', 'items': ['a', 'b', 'c', 'd', 'e'] } @app.route('/') def index(): return render_template('index.html')

Используем переменные в шаблоне:

<p>{{ user }}</p> <ul> {% for item in items %} <li>{{ item }}</li> {% endfor %} </ul>

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

<p>abcde</p> <ul> <li>a</li> <li>b</li> <li>c</li> <li>d</li> <li>e</li> </ul>

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

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