Макросы для повторяющейся разметки
Пишите функции шаблонов, чтобы не копировать код.
«Макросы для повторяющейся разметки» — бесплатный урок Flask Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Flask Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Flask Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Repeated Markup Begs for a Function
When the same input field or card markup appears with small tweaks, copying it gets messy. A macro turns that pattern into a reusable function. 🛠️
What a Macro Is
A macro is a template function: you define markup once with parameters, then call it many times with different arguments.
Define a Macro
You declare a macro with a name and parameters, write its markup, and close it with endmacro. It is reusable from then on.
{% macro field(name) %}
<input name="{{ name }}">
{% endmacro %}Call a Macro
Invoke a macro like a function, passing arguments. Jinja2 renders the macro body with those values right where you call it.
{{ field("email") }}Parameters Customize Output
Macro parameters let one definition produce many variations, such as different input types or labels, from a single source of markup.
{% macro field(name, type="text") %}
<input name="{{ name }}" type="{{ type }}">
{% endmacro %}Default Argument Values
Give parameters defaults so common calls stay short. Callers override a default only when they need something different.
{{ field("age", type="number") }}Keep Macros in Their Own File
Store shared macros in a file like forms.html so many templates can import and reuse the same helpers.
{% import "forms.html" as forms %}Import Then Call
After import, call a macro through its namespace. This keeps your macro library separate from the page using it.
{{ forms.field("email") }}Import Specific Macros
Use from import to pull just the macros you need by name, keeping the template clean and the intent obvious.
{% from "forms.html" import field %}Macros vs Includes
An include drops fixed markup; a macro takes arguments and varies its output. Reach for macros when the snippet must change per call.
DRY Templates at Last
Macros remove copy-paste from your templates: fix the field markup once and every call site updates. That is templating done right. ✨
Quick Check
What makes a macro different from an include?
Recap: Macros
A macro is a reusable, parameterized template function. Define it once, import it, and call it anywhere to keep templates DRY. 🎯
Часто задаваемые вопросы
Урок «Макросы для повторяющейся разметки» бесплатный?
Да — полный текст урока «Макросы для повторяющейся разметки» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Flask Academy, подпишись на CoddyKit PRO. Курс Flask Academy содержит 4 уроков всего.
Чему я научусь в уроке «Макросы для повторяющейся разметки»?
Пишите функции шаблонов, чтобы не копировать код. Ты практикуешь Flask Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Flask Academy?
Предыдущий опыт не требуется. Flask Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Макросы для повторяющейся разметки»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Flask Academy?
Да. Каждый урок Flask Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Определение базового шаблона с блоками
- Расширение базового шаблона в дочерних страницах
- Подключение повторно используемых фрагментов
- Макросы для повторяющейся разметки