if 语句确定在 jinja 模板中使用哪个路由,flask

ref*_*ome 2 templates jinja2 flask

我有两个使用一个模板的视图。

@users.route("/one")
@login_required
def one(username):
     return render_template('follower.html') 
Run Code Online (Sandbox Code Playgroud)

@users.route("/two")
@login_required
def two(username):
     return render_template('follower.html') 
Run Code Online (Sandbox Code Playgroud)

在 jinja 模板( follower.html )中,如果像这样使用路由一,我正在尝试执行一个程序:

{% if url_for('users.one')  %}
    execute program
{% endif %}
Run Code Online (Sandbox Code Playgroud)

但似乎我做错了。请问确定使用哪条路线的正确方法是什么?

小智 5

您可以简单地在模板文件中编写一个条件来检查是否request.endpoint等于所需路由的函数名称,在本例中为one,如下例所示:

{% if request.endpoint == 'one'  %}
    execute program
{% endif %}
Run Code Online (Sandbox Code Playgroud)

这样,您就不会对路线功能进行任何更改。