Передать переменные всем шаблонам Jinja2 с Flask

У меня есть таблица в навигационной системе моего webapp, которая будет заполняться обновленной информацией каждый раз, когда страница отображается. Как я мог избежать размещения следующего кода в каждом view ?

 def myview(): mydict = code_to_generate_dict() return render_template('main_page.html',mydict=mydict) 

mydict используется для заполнения таблицы. Таблица будет отображаться на каждой странице

2 Solutions collect form web for “Передать переменные всем шаблонам Jinja2 с Flask”

Вы можете использовать консольные процессоры Flask для вставки глобалов в ваши шаблоны jinja

Вот пример:

 @app.context_processor def inject_dict_for_all_templates(): return dict(mydict=code_to_generate_dict()) 

Чтобы автоматически вводить новые переменные в контекст шаблона, в Flask существуют контекстные процессоры. Контекстные процессоры запускаются до визуализации шаблона и имеют возможность вводить новые значения в контекст шаблона. Контекстный процессор – это функция, которая возвращает словарь. Затем ключи и значения этого словаря объединяются с контекстом шаблона для всех шаблонов в приложении:

Создайте свой собственный метод рендеринга, чтобы он не повторял этот код. Затем назовите его, когда вам нужно отобразить шаблон.

 def render_with_dict(template): mydict = code_to_generate_dict() return render_template(template, mydict=mydict) def myview(): return render_with_dict('main_page.html') 
  • как получить статические файлы в Flask без url_for ('static', file_name = 'xxx')
  • Списки конкатенаций в JINJA2
  • Как сгенерировать список каталогов html с помощью Python
  • не может использовать current_user в макросе jinja2?
  • распечатать идентификатор объекта модели приложения в шаблоне html
  • zip (list1, list2) в Jinja2?
  • Как загрузить шаблон jinja непосредственно из файловой системы
  • Применение фильтров jinja2 к блоку?
  •  
    Interesting Posts for Van-Lav

    Сделайте снимок экрана с веб-сайта из командной строки или с помощью python

    Скриншот активного окна с Python PIL и API окон: как бороться с закругленными углами?

    Почему встроенные функции, такие как abs, работают в массиве numpy?

    Согласование регулярных выражений Objective-C / Swift по нескольким линиям

    Python – найти самый длинный путь

    Почему доступ к переменной класса из класса требует «я» в Python?

    Python: сохранение данных в эмуляторе хранилища данных Google Cloud

    закрытие tkmessagebox через некоторое время в python

    Python – pandas – добавьте серию в пустую область данных

    Использование NetBeans для разработки графического интерфейса Python

    Как сообщить Python о преобразовании целых чисел в слова

    Python: Какова самая многофункциональная библиотека для загрузки звуковых метаданных из разных форматов?

    Лучший способ вернуть значение из скрипта python

    Присоединить последний элемент в списке

    Борьба с динамикой ndarray

    Python - лучший язык программирования в мире.