Атрибут jinja_env
Атрибут jinja_env принадлежит экземпляру класса Flask
и хранит объект окружения Jinja2. Через него можно настраивать
фильтры, тесты, глобальные переменные и другие параметры
шаблонизатора. Атрибут доступен только для чтения, но его
внутреннее состояние можно изменять.
Синтаксис
app.jinja_env
Пример
Давайте добавим пользовательский фильтр в окружение Jinja
через атрибут jinja_env:
from flask import Flask, render_template
app = Flask(__name__)
def double(value):
return value * 2
app.jinja_env.filters['double'] = double
@app.route('/')
def index():
return render_template('index.html', num=5)
Файл шаблона:
<p>{{ num | double }}</p>
Результат выполнения кода:
<p>10</p>
Пример
Давайте добавим глобальную переменную, доступную во всех шаблонах:
from flask import Flask, render_template
app = Flask(__name__)
app.jinja_env.globals['site_name'] = 'MySite'
@app.route('/')
def index():
return render_template('index.html')
Файл шаблона:
<h1>{{ site_name }}</h1>
Результат выполнения кода:
<h1>MySite</h1>
Смотрите также
-
метод
template_filter,
который регистрирует фильтр Jinja -
метод
template_global,
который добавляет глобальную переменную -
метод
template_test,
который регистрирует тест Jinja -
атрибут
template_folder,
который задаёт папку с шаблонами