What is the purpose of the {% extends %} tag in Flask templates?
The {% extends %} tag allows a template to inherit from a base template, so you can reuse common layout and structure across multiple pages.
Click to reveal answer
beginner
How do you define a block in a Flask template?
You define a block using {% block block_name %} to start and {% endblock %} to end. This marks a section that child templates can override.
Click to reveal answer
intermediate
What happens if a child template does not override a block defined in the parent template?
If the child template does not override a block, the content inside that block from the parent template is used as default.
Click to reveal answer
beginner
Why is template inheritance useful in web development?
It helps keep code DRY (Don't Repeat Yourself) by sharing common layout and design in one place, making maintenance easier and consistent across pages.
Click to reveal answer
intermediate
Show a simple example of a base template with a block and a child template that extends it.
What does the {% extends 'base.html' %} line do in a Flask template?
AIt includes the content of 'base.html' directly without inheritance.
BIt tells the template to use 'base.html' as a parent layout.
CIt imports Python code from 'base.html'.
DIt creates a new template file named 'base.html'.
✗ Incorrect
The {% extends %} tag makes the current template inherit from the specified parent template.
Which tag is used to define a replaceable section in a Flask template?
A<code>{% block %}</code>
B<code>{% import %}</code>
C<code>{% extends %}</code>
D<code>{% include %}</code>
✗ Incorrect
The {% block %} tag defines a section that child templates can override.
If a child template does not override a block, what content is shown?
AAn error is raised.
BThe block is empty.
CThe parent template's block content is shown.
DThe child template's content is shown instead.
✗ Incorrect
The parent template's block content acts as a default if the child does not override it.
Why should you use template inheritance in Flask?
ATo avoid repeating common layout code across pages.
BTo write all HTML in one file.
CTo speed up server response time.
DTo include JavaScript files automatically.
✗ Incorrect
Template inheritance helps keep your code DRY by sharing common layout in one place.
Which of these is a correct way to override a block named 'content' in a child template?
A{% include content %}New content{% endinclude %}
B{% extends content %}New content{% endextends %}
C{% import content %}New content{% endimport %}
D{% block content %}New content{% endblock %}
✗ Incorrect
You override a block by defining it with the same name using {% block %} tags.
Explain how template inheritance works in Flask using the {% extends %} and {% block %} tags.
Think of a parent layout with placeholders that children fill in.
You got /4 concepts.
Describe why using template inheritance is beneficial when building web pages with Flask.
Imagine updating a header on many pages at once.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of using {% extends %} in Flask templates?
easy
A. To inherit the layout from a base template and reuse it
B. To include JavaScript files in the template
C. To define a new CSS style inside the template
D. To create a new Flask route
Solution
Step 1: Understand the role of {% extends %}
This tag is used to inherit from a base template, allowing reuse of common layout parts.
Step 2: Differentiate from other template tags
Other options like including scripts or defining CSS are done differently, not with {% extends %}.
Final Answer:
To inherit the layout from a base template and reuse it -> Option A
Quick Check:
Template inheritance = reuse layout [OK]
Hint: Remember: extends means reuse base layout [OK]
Common Mistakes:
Confusing extends with including scripts
Thinking extends creates new routes
Using extends to add CSS styles
2. Which of the following is the correct syntax to inherit from a base template named base.html?
easy
A. {% include 'base.html' %}
B. {% import 'base.html' %}
C. {% extends 'base.html' %}
D. {% block 'base.html' %}
Solution
Step 1: Recall the syntax for template inheritance
The correct tag to inherit a template is {% extends 'filename' %}.
Step 2: Identify incorrect tags
{% include %} inserts content but does not inherit; {% import %} is for macros; {% block %} defines sections, not inheritance.
Final Answer:
{% extends 'base.html' %} -> Option C
Quick Check:
Extends = inherit base template [OK]
Hint: Use extends, not include, to inherit templates [OK]
Common Mistakes:
Using include instead of extends
Confusing import with extends
Misusing block tag for inheritance
3. Given the base template base.html with a block named content and a child template that extends it and overrides content, what will be displayed when rendering the child template?
medium
A. An error because blocks cannot be overridden
B. The content defined inside the child's content block
C. The content defined inside the base template's content block
D. Both base and child content concatenated automatically
Solution
Step 1: Understand block overriding in template inheritance
The child template replaces the base template's block content with its own block content.
Step 2: Clarify behavior of blocks
Blocks are placeholders in the base template; child templates override them. No automatic concatenation occurs unless explicitly coded.
Final Answer:
The content defined inside the child's content block -> Option B
Quick Check:
Child block overrides base block content [OK]
Hint: Child block content replaces base block content [OK]
Common Mistakes:
Thinking base block content shows instead
Expecting automatic concatenation of blocks
Believing block override causes errors
4. Consider this child template code snippet:
{% extends 'base.html' %}
{% block content %}
Hello World
What is the error in this template?
medium
A. The closing tag should be {% endblock %} instead of
B. The extends tag is missing quotes around the filename
C. The block name should be main not content
D. The p tag cannot be used inside blocks
Solution
Step 1: Check block syntax correctness
Blocks must be closed with {% endblock %}, not with HTML-like closing tags.
Step 2: Verify other parts
The extends tag is correctly quoted; block name can be any valid name; p tags are allowed inside blocks.
Final Answer:
The closing tag should be {% endblock %} instead of -> Option A
Quick Check:
Block ends with endblock tag [OK]
Hint: Close blocks with {% endblock %}, not HTML tags [OK]
Common Mistakes:
Using HTML closing tags for blocks
Forgetting quotes in extends (not here though)
Assuming block names are fixed keywords
5. You have a base template base.html with two blocks: header and content. You want a child template to reuse the base layout but only change the content block, keeping the base header as is. Which is the correct approach?
hard
A. In the child template, extend base.html and redefine only the header block
B. In the child template, extend base.html and redefine both header and content blocks
C. In the child template, do not use extends; copy all base content and change content
D. In the child template, extend base.html and define only the content block; omit the header block
Solution
Step 1: Understand block overriding behavior
If a block is not redefined in the child, the base template's block content is used automatically.
Step 2: Apply this to the problem
To keep the base header, do not redefine the header block in the child; only override content.
Final Answer:
In the child template, extend base.html and define only the content block; omit the header block -> Option D
Quick Check:
Omit block to keep base content [OK]
Hint: Override only blocks you want to change [OK]
Common Mistakes:
Redefining all blocks unnecessarily
Copying base template instead of extending
Overriding wrong block by mistake
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.