jinja2渲染空李

时间:2018-10-05 10:17:14

标签: python html flask jinja2

就像标题说的那样。 Jinja正在渲染一个额外的li标签。这是我的代码。

<ul class="list-row">
    {% if current_user.is_authenticated %}
        <li><a href="#">{{ current_user.username }}</a><li>
        <li><a href="{{ url_for('logout') }}">logout</a><li>
    {% else %}
       <li><a href="{{ url_for('login') }}">login</a><li>
       <li><a href="{{ url_for('register') }}">register</a></li>
    {% endif %}
</ul>

,此处以HTML呈现:
rendered in html

更糟糕的是用户登录:
This is how it looks like when a user logged in.

我尝试过的事情

  • 单个空li>它没有显示多余的li
  • 单个li里面带有一个空标记>它没有呈现额外的li
  • 使用标签和url_for的单个li,它不会呈现额外的li
  • 2个空lis(带有和不带有标签)>没有呈现额外的li

在我看来,这只有在我将两个li与jinja代码放在一起时才会发生。老实说,我可以忽略它,但它也会占用空间。

enter image description here

1 个答案:

答案 0 :(得分:0)

看看如何关闭标签。您有<li>,应该有</li>,因此HTML会被解析。

<ul class="list-row">
    {% if current_user.is_authenticated %}
         <li><a href="#">{{ current_user.username }}</a></li>
         <li><a href="{{ url_for('logout') }}">logout</a></li>
    {% else %}
         <li><a href="{{ url_for('login') }}">login</a></li>
         <li><a href="{{ url_for('register') }}">register</a></li>
    {% endif %}
</ul>