gpt4 book ai didi

python - 循环 Jinja2 模板中的列表

转载 作者:太空宇宙 更新时间:2023-11-03 19:09:50 26 4
gpt4 key购买 nike

我正在尝试使用 Flask 框架制作一个简单的博客网站。我博客中的每个条目都有标题、文字和评论。标题和文本存储在名为条目的表中,注释存储在名为注释的表中,该表通过外键将注释链接到相应的条目。

我现在遇到的问题是我想在我的html文件中显示注释。我要做的是,当我处于 for 循环中时,我想在 html 文件中调用一个名为 show_comments 的 python 函数。 python 函数如下所示:

@app.route('/comments/<entryid>')
def show_comments(entryid):
db = get_db()
curId = db.execute('select id, comment from comments where entry_id=entryid order by id desc')
comments = [dict(id=row[0], comment=row[1]) for row in curId.fetchall()]
return render_template('show_entries.html', comments=comments)

我的模板如下所示:

% extends "layout.html" %}
{% block body %}
{% if session.logged_in %}
<form action="{{ url_for('add_entry') }}" method=post class=add-entry>
<dl>
<dt>Title:
<dd><input type=text size=30 name=title>
<dt>Text:
<dd><textarea name=text rows=5 cols=40></textarea>
<dd><input type=submit value=Share>
</dl>
</form>
{% endif %}
<ul class=entries>
{% for entry in entries %}
<li><h2>{{ entry.title }}</h2>{{ entry.text }}
{{ url_for('show_comments', entryid=entry.id) }}
<ul class=comments>
{% for acomment in comments %}
<li>{{ acomment.comment }}
</li>
</br>
</ul>
{% endfor %}
{% if session.logged_in %}
<form action="{{ url_for('add_comment', key=entry.id) }}" method=post class=add-entry>
<dl>
<dt>Comment:
<dd><textarea name=comment rows=2 cols=40></textarea>
<dd><input type=submit value=Comment>
</dl>
</form>
{% endif %}
{% else %}
<li><em>Unbelievable. No entries here so far</em>
{% endfor %}
</ul>
{% endblock %}

最佳答案

您还没有真正告诉我们您的问题是什么,所以我不知道这是否有帮助。但我会在这里指出三个具体错误:

第一个是您将注释放入无序列表( <ul> 标签)中,但将结束标签 ( </ul> ) 放在循环内部而不是外部。

</br>应该写成<br /> ,但实际上该标签一开始就不属于那里。

其次,您的 HTML 已损坏。 HTML 属性(像 type=submit 这样的标签中的部分)应该在值两边加上引号。例如,它应该看起来像 type="submit" 。大多数浏览器对于此类问题都是宽容的,但最好不要指望这一点并编写正确的 HTML。

关于python - 循环 Jinja2 模板中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13350091/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com