Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

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
Michael Hulet
47,913 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 68,457 Points

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