In Jinja2, a control structure refers to statements in a template that control the flow of the engine parsing the template. These structures include, but are not limited to, conditionals, loops, and macros. Within Jinja2 (assuming the defaults are in use), a control structure will appear inside blocks of {% ... %}. These opening and closing blocks alert the Jinja2 parser that a control statement is provided instead of a normal string or variable name.
Control structures
Conditionals
A conditional within a template creates a decision path. The engine will consider the conditional and choose from two or more potential blocks of code. There is always a minimum of two: a path if the conditional is met (evaluated as true), and...