Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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,826 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 67,622 Points

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