我正在尝试使用Flask构建网站,但遇到jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag 'endfor'. Jinja was looking for the following tags: 'endblock'. The innermost block that needs to be closed is 'block'
错误。当我尝试使用localhost:5000登录到本地网页时,出现上述错误。
我已经阅读了回溯错误,它似乎发生在我的index.html文件的第21行。
{% block content %}
<h1>Hi, {{ current_user.username }}!</h1>
{% if form %}
<form action="" method="post">
{{ form.hidden_tag() }}
<p>
{{ form.post.label }}<br>
{{ form.post(cols=32, rows=4) }}<br>
{% for error in form.post.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
</p>
<p>{{ form.submit() }}</p>
</form>
{% endif %}
{ % for post in posts %}
{% include '_post.html' %}
{% endfor %}
<p>
{{ post.author.username }} says <b>{{ post.body }}</b>
</p>
{% endblock %}```
The expected result is that I am able to log into my local Flask website and see other users posts on the webpage.
答案 0 :(得分:0)
我认为您在下面的行中输入了错误。
document.getElementById('comboA').addEventListener('change', function() {
const button = document.querySelector('button.js-addcart-detail');
button.dataset.sellyProduct = this.value; // `this` is the element receiving the event
});
{ % for post in posts %}
{% include '_post.html' %}
{% endfor %}
之前{
后有空格,这就是为什么%
标签未被识别并因此for
标签给出错误的原因。
应为:
endfor
答案 1 :(得分:0)
在第二个for循环中,您有错字
{ % for post in posts %}
{% include '_post.html' %}
{% endfor %}
应如下所示:
{% for post in posts %}
{% include '_post.html' %}
{% endfor %}
原因:由于{
之后%
之前有空格,因此Jinja无法将其识别为endfor标记。从而给您错误。
答案 2 :(得分:0)
搜索此错误消息的人可能还想知道,如果您不小心使用括号而不是大括号,可能会导致相同的错误:
(% for ... %}
这似乎是一个愚蠢的错误,但多年来我已经犯了几次并且被难住了。很容易扫描代码太快而看不到有问题的括号。