Тест mapping
Тест mapping применяется внутри шаблонов Jinja
для проверки того, является ли переменная словарем
или объектом, поддерживающим доступ по ключу.
Тест возвращает True, если значение является
mapping-объектом, и False в противном случае.
Чаще всего используется в условиях if
для выбора логики отображения данных.
Синтаксис
{% if value is mapping %}
...
{% endif %}
Пример
Давайте проверим словарь и строку с помощью теста mapping:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html', data={'a': 1}, text='abcde')
Шаблон для проверки:
<p>{{ data is mapping }}</p>
<p>{{ text is mapping }}</p>
Результат выполнения кода:
<p>True</p>
<p>False</p>
Пример
Давайте используем тест mapping в условии
для вывода ключей словаря:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html', res={'a': 1, 'b': 2})
Шаблон с условием:
{% if res is mapping %}
{% for key in res %}
<p>{{ key }}</p>
{% endfor %}
{% else %}
<p>not a mapping</p>
{% endif %}
Результат выполнения кода:
<p>a</p>
<p>b</p>