templates - if 语句确定在 jinja 模板、flask 中使用了哪条路由

标签 templates flask jinja2

我有两个使用一个模板的 View 。

@users.route("/one")
@login_required
def one(username):
     return render_template('follower.html') 

@users.route("/two")
@login_required
def two(username):
     return render_template('follower.html') 

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

{% if url_for('users.one')  %}
    execute program
{% endif %}

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

最佳答案

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

{% if request.endpoint == 'one'  %}
    execute program
{% endif %}

通过这种方式,您不会对您的路线功能进行任何更改。

关于templates - if 语句确定在 jinja 模板、flask 中使用了哪条路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62853545/

相关文章:

python - 用 pip3 安装了 j2cli 和 jinja2 但找不到如何运行 j2cli

c++ - 插入优先级队列时出现段错误

templates - 用字符串连接变量并将其设置在一个新变量中

c++ - 在模板类中使用非模板函数

python - 列出 URL 路由 Flask

python - 根据组成员资格使用 Flask-LDAP3-Login 进行身份验证

c++ - 如何在 32 位和 64 位环境中使用 intptr_t 可靠地专门化模板?

python - WTForms 向 SQLAlchemy 提交动态字段

django - 在Django项目中设置Jinja2

python - Jinja2 是否支持嵌套的 if 语句?