Python Flask Basics Templates and Static Files Template Inheritance

Why is my code not working?

I'm in the task 6 of 6, but my code is not passing this time, why is it?

flask_app.py
from flask import Flask
from flask import render_template

app = Flask(__name__)


@app.route('/')
def index():
    return render_template('index.html')
templates/index.html
{% extends 'layout.html' %}

{% block title %} {{ super() }} Homepage {% endblock %}

  {%block content %}
    <h1>Smells Like Bakin'!</h1>
    <p>Welcome to my bakery web site!</p>
  {% endblock %}
templates/layout.html
<!doctype html>
<html>
{% block title %}Smells Like Bakin'{% endblock%}
<body>
{% block content %}
{% endblock%}
</body>
</html>

1 Answer

Chris Freeman
MOD
Chris Freeman
Treehouse Moderator 56,641 Points

it seems the "<title>" tags fell out of layout.html:

<!doctype html>
<html>
  <head><title>{% block title %}Smells Like Bakin'{% endblock %}</title></head>
  <body>
    {% block content %}{% endblock %}
  </body>
</html>

Thanks, I think I misunderstood the block purpose, didn't it suppose to replace the <head><title>?

Chris Freeman
Chris Freeman
Treehouse Moderator 56,641 Points

The block marks a region that can be replaced when another template extends this template.

The tags <head> and <title> need to be present somewhere. If placed inside a template block then every template that extended this one would have to include <head> and <title> in the replacement text. If left outside the block then they don't have to be included in every extending template.