Предыдущий: Часть 4 – сосредоточиться на ответах
В этой главе мы собираемся исследовать основы шаблонов в
Я настроил все в этом репо:
Deliciousflask-5.1
Загрузите его, убедитесь, что у вас установлена Flask и запустите app.py
Фигурные скобки
Чтобы различить HTML и все, что вы хотите рендерировать, вы используете вьющиеся скобки. В шаблоны/curly_braces.html
ты увидишь
{{1 + 2}}
Если вы пойдете в http://127.0.0.1:5000/render-curly-braces ты увидишь:
Это потому, что прилагается 1+2
в {{}}
вызывает колбу, чтобы представить выражение.
Рендеринг переменной Python
Допустим, у нас есть переменная, называемая сообщением. Мы хотим сделать это в шаблоне. В HTML часть мы делаем:
{{message}}
и в app.py мы передаем его как аргумент ключевого слова в нашей функции возврата.
@app.route('/render-variable') def render_variable(): return render_template('render_variable.html', message='I am a rendered variable!')
Сообщение
Имя переменной шаблонов и «Я отображаемая переменная!»
это значение.
Собираюсь в http://127.0.0.1:5000/render-vaireable дает:
Рендеринг петли
Синтаксис для петли заключается в следующем, на стороне Python мы просто рендеринг файла:
{% for i in range(5): %}{{ i }}{% endfor %}
Собираюсь в http://127.0.0.1:5000/render-loop дает:
Просто не забудьте поместить значения рендеринга в {{}}
Списки рендеринга
Скажем так, у нас есть список фруктов:
@app.route('/render-list') def render_list(): return render_template('render_list.html', fruits=['apple', 'orange', 'pear'])
Теперь у нас есть переменная, называемая фруктами, доступной в шаблоне. Мы повторяем это так же, как обычный список:
{% for fruit in fruits: %}{{ fruit }}{% endfor %}
Собираюсь в http://127.0.0.1:5000/render-list дает:
Установка переменной в самом шаблоне.
Чтобы установить переменную в самом шаблоне, вы делаете:
{% набор%}
Затем вы можете использовать его:
{% set x = 5%}x is equal to {{x}}
Собираюсь в http://127.0.0.1:5000/render-template-var дает:
Рендеринг IFS
Вполне возможно и полезно иметь IFS в шаблонах:
{% set x = 5%} {% if x == 5: %}X is equal to 5
{% else %}X is not equal to 5
{% endif %}
Собираюсь в http://127.0.0.1:5000/render-if дает:
как x равен 5
Где документы шаблонов?
Флэста фактически использует сестринский проект для шаблона под названием Jinja. Все документы можно найти здесь: jinja.palletsprojects.com/en/2.11.x
Jinja2 на самом деле очень продвинутая и всеобъемлющая библиотека шаблонов.
В главах мы рассмотрим самые распространенные, которые мы будем использовать.
Оригинал: “https://dev.to/abdurrahmaanj/flask-delicious-tutorial-building-a-library-management-system-part-5-a-dip-into-templates-logic-gpl”