在Jinja2中访问烧瓶动态路由值

时间:2019-06-02 19:44:19

标签: python flask jinja2

如何在jinja2模板中访问由flask生成的动态路由值?

例如,我有这样的路线:

@bp.route('/<username>')
def index(username):
    user = User.query.filter_by(username=username).first()
    return render_template('index.html', user=user)

Jinja2模板:

<a href="{{ url_for('index', username=HERE_GOES_DYNAMIC_VALUE) }}">Show user</a>

是否可以从username对象访问request值?

1 个答案:

答案 0 :(得分:0)

render_template('index.html', user=user)使user变量可用于Jinja2模板引擎,默认情况下包含在Flask中。

如果要使用用户的用户名创建链接,则可以这样做:

<a href="{{ url_for('index', username=user.username) }}">Show user</a>

烧瓶示例:

@app.route('/users')
def users():
    users = User.query.all()
    return render_template('users.html', users=users)

Jinja2循环示例(users.html):

{% for user in users %}
<a href="{{ url_for('index', username=user.username) }}">Show user {{ user.username }}</a>
{% endfor %}

以下是有关Jinja2变量的更多信息:http://jinja.pocoo.org/docs/2.10/templates/#variables