带有url_for()的Flask Jinja2网址无效

时间:2018-03-05 15:35:43

标签: python flask jinja2

我遇到了一个问题,从路径传递给我模板的数据是以元组列表的形式出现的。我相信这种格式是必要的,因为我需要一个唯一的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')]

Repo here

关于Flask / Jinja2 URL构建,有很多回答的问题,但没有一个专门解决这种情况,需要列表或元组索引。

0 个答案:

没有答案