Python Flask Basics Character Builder Looping Through Items

Zack Parr
Zack Parr
4,091 Points

SyntaxError: <ul>

I found this solution from another question, but it's not passing. The error indicates there might be a problem with the unordered list tag, but I don't know what's wrong with it.

app.py
from flask import Flask, render_template

from options import OPTIONS

app = Flask(__name__)


@app.route('/')
def index():
    return render_template('options.html', options=OPTIONS)

<ul>
  {% for listItem in options %}
    <li>{{ listItem["name"] }}</li>
  {% endfor %}
</ul>
templates/options.html
<ul>

</ul>

2 Answers

Michael Hulet
MOD
Michael Hulet
Treehouse Moderator 47,712 Points

The code you pasted in is HTML, and needs to go in your template file. Try this:

app.py
from flask import Flask, render_template

from options import OPTIONS

app = Flask(__name__)


@app.route('/')
def index():
    return render_template('options.html', options=OPTIONS)

# This is the end of the file. The HTML doesn't go here
templates/options.html
<!-- The HTML you pasted should only go a template file, like this one -->
<ul>
  {% for listItem in options %}
    <li>{{ listItem["name"] }}</li>
  {% endfor %}
</ul>
Chris Freeman
MOD
Chris Freeman
Treehouse Moderator 59,891 Points

The HTML and template markup should be place in the templates/options.html file not the app.py file.