我遇到了一个问题,从路径传递给我模板的数据是以元组列表的形式出现的。我相信这种格式是必要的,因为我需要一个唯一的ID和一个人的名字,这不是唯一的,我必须按字母顺序对名称进行排序。已排序的元组列表完美实现。
这会抛出错误," jinja2.exceptions.UndefinedError:' item'未定义":
<ul>
{% for item in student_list %}
<li><a href="{{ url_for( 'student', idnum=item[0] ) }}">{{ item[1] }}</a></li>
{% endfor %}
</ul>
这不会引发错误,并且完美运行:
<ul>
{% for item in student_list %}
<li><a href="/student/{{ item[0] }}">{{ item[1] }}</a></li>
{% endfor %}
</ul>
所以我已经使用了第二个版本,但是如果可能的话我想使用url_for()函数。
这是路线:
@app.route('/')
def index():
all_students = get_all_students(PEOPLE)
return render_template('index.html', student_list=all_students)
这是列表的格式:
student_list = [('896-95-9224', 'Jimenez'), ('778-73-1993', 'Ramos'), ('578-92-7338', 'Thomas'), ('003-73-8821', 'Watts')]
关于Flask / Jinja2 URL构建,有很多回答的问题,但没有一个专门解决这种情况,需要列表或元组索引。