【问题标题】:jinja2 rendering empty lijinja2 渲染空里
【发布时间】:2018-10-05 10:17:13
【问题描述】:

正如标题所说。 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 呈现的:

更糟糕的是用户登录:

我尝试过的事情

  • 单个空 li > 它没有渲染额外的 li
  • 单个li,里面有一个空的a标签>它没有渲染额外的li
  • 带有标签和 url_for 的单个 li > 它没有渲染额外的 li
  • 2 个空的 lis(带和不带标签)> 它没有渲染额外的 li

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

【问题讨论】:

  • 请注意,来自浏览器开发者控制台的屏幕截图并不反映通过网络发送的实际 HTML;它们代表了浏览器如何解析您的 HTML。 (在这种情况下,请参阅我的回答,问题是您的 HTML 格式错误。)
  • 谢谢!我再次使用视图源查看了它,它显示了实际的 html。我会将您的答案标记为已接受。

标签: python html flask jinja2


【解决方案1】:

看看你是如何关闭标签的。你有&lt;li&gt;,你应该有&lt;/li&gt;,所以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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 2014-02-14
    • 2011-12-02
    • 2013-10-09
    • 2019-06-28
    • 2017-12-30
    相关资源
    最近更新 更多