使用参数时,在烧瓶中的Url_for

时间:2013-12-30 01:21:03

标签: python url flask

我正在尝试使用flask的url_for()通过传递用户名来导航到用户的页面。我把html文件作为

{% for user in users %}
    <li><h2>{{ user.name }}</h2>{{ user.email|safe }}
    <a href="{{ url_for('users_stats',username = {{ user.name }}) }}">stats</a> #This doesn't work
    <a href="/users/{{ user.name }}"> stats </a> #This does work

在我的python文件中,我将函数设为

@app.route('/users/<username>')
def users_stats(username):
    ...

我在其中渲染另一个模板。为什么第一种方式不起作用?此外,由于第二种方式是通常的做法是做这样的网址或使用url_for()?

1 个答案:

答案 0 :(得分:7)

而不是:

<a href="{{ url_for('users_stats',username = {{ user.name }}) }}">stats</a>

这样做:

<a href="{{ url_for('users_stats',username = user.name) }}">stats</a>

您已经在{{}}区域内,因此您无需再添加其中的第二级。