如何在Jinja2 HTML模板中不使用JavaScript将用户重定向到另一个网页?

mitkmikd  于 2022-12-31  发布在  Java
关注(0)|答案(1)|浏览(120)

我正在使用一个带有FastAPI的Jinja2模板。我想知道的是如何在Jinja2模板中实现一个redirect动作而不使用JavaScrpit
如果我设置的变量存在,我想强制页面重定向。

{% if my_var %}
    // What value should I enter here?
{% endif %}

案例在我的标题与java:

<c:if test="${!emtpy(my_var)}">  
    <% response.sendRedirect("/new/url"); %>
</c:if>

我的PHP中的案例:

if(!empty($my_var) ){
    header('Location:/new/url');
    exit;  
}

如果没有办法,我不得不使用JavaScript,但我根本不想使用这种方法,因为有些人在浏览器中禁用JavaScript。

eoigrqb6

eoigrqb61#

由于您不想使用JavaScript,因此可以使用<meta> HTML元素/标记,并将http-equiv属性设置为refresh。此指令指定:
页面重定向到另一个页面之前的秒数-仅当content属性包含一个非负整数,后跟字符串';url='和一个有效的URL时。
因此,content中的值是浏览器将用户重定向到新页面之前的延迟。要立即重定向,请将此参数设置为0秒,如下例所示。
<meta>标记应放置在<head>元素内;然而,在HTML 5中,只要存在itemprop属性,就允许在<body>标签内使用<meta>标签。

示例

<head>
     {% if my_var %}
        <meta http-equiv="refresh" content="0; url='https://stackoverflow.com'" />
     {% endif %}
</head>

相关问题