如何使用带有Jinja模板和html表的烧瓶在网站上显示sql表?
以下是我的脚本代码" profile.html"
我无法打印表格#34;用户"中的值。我收到错误:
TemplateSyntaxError:遇到未知标记' endblock'。你可能 犯了一个嵌套错误。 Jinja期待这个标签,但目前 寻找' endfor'或者'否则'。最里面的块需要 关闭是' for'。
我认为问题可能在于{% for user in users %}
和{% endfor %}
与jinja模板无关的行:
{% extends "layout.html" %}
{% block content %}
<div class="jumbo">
<h2>Profile<h2>
</div>
<table class="table">
<thead>
<tr>
<th>uid</th>
<th>firstname</th>
<th>lastname</th>
<th>email</th>
</tr>
</thead>
<tbody>
{% for user in users %}
<tr>
<td>{{ user.uid }}</td>
<td>{{ user.firstname }}</td>
<td>{{ comment.lastname }}</td>
<td>{{ user.email }}</td>
</tr>
</tbody>
</table>
{% endfor %}
{% endblock %}
如何编辑它们以在网页上显示我的SQL表?
答案 0 :(得分:3)
<table>
和<tbody>
开头标记位于for
循环之外,而</table>
和</tbody>
结束标记位于for循环内。这意味着虽然您只有一个<table>
开始标记,但您在每行之后关闭该标记。浏览器不知道如何处理所有这些额外的结束标记,因此它呈现一行包含一行,然后将其余行呈现在表外。要解决此问题,您需要将{% endfor %}
代码重新定位到</tbody>
和</table>
结束标记之前:
{% for user in users %}
<tr>
<td>{{ user.uid }}</td>
<td>{{ user.firstname }}</td>
<td>{{ user.lastname }}</td>
<td>{{ user.email }}</td>
</tr>
{% endfor %}
您展示的模板不会产生您指明的TemplateSyntaxError
,但如果没有此更改,您的代码将无法正确呈现。