首页 > 解决方案 > 在 jinja2 中访问烧瓶动态路由值

问题描述

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

例如,我有这样的路线:

@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

标签: pythonflaskjinja2

解决方案


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


推荐阅读