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

Chris Freeman
MOD
Chris Freeman
Treehouse Moderator 58,953 Points

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

Michael Hulet
MOD
Michael Hulet
Treehouse Moderator 47,035 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>