下面是app.py代码。由于我已将评论打印到控制台,因此SQL查询工作正常。但是,一旦将其传递给html模板,就无法使用jinja遍历评论。
def index():
# find all reviews
rows = db.execute("SELECT review, name, date, rating, isbn FROM reviews WHERE username=:username ORDER BY date", {"username":session["username"]})
reviews = rows.fetchall()
if reviews == None:
return render_template("index.html", username=session["username"], message="No reviews written. Write one today!")
print(reviews)
return render_template("index.html", username=session["username"], reviews=reviews)
以下是相关的index.html代码:
<div class="padding">
<h3>Your Recent Reviews</h3>
<p><a href="/search">{{message}}</a></p>
{% for review in reviews %}
{% set rating = review["rating"] | int %}
<div class="table-responsive review">
<table class="table-hover" style="width: 100%">
<tbody><tr style="transform: rotate(0);">
<th scope="row"><a href="/book/{{review['isbn']}}" class="stretched-link"></a></th>
<td><h6>{{review["date"]}} | {{review["name"]}} commented: </h6>
{{review["review"]}}<br>
{% for i in range(rating) %}
<i class="fa fa-star" aria-hidden="true"></i>
{% endfor %}
</td>
</tr></tbody>
</table>
</div>
{% endfor %}
</div>
答案 0 :(得分:0)
rows.fetchall()
返回一个空列表,而不是None
。
if not reviews:
return ...
尽管
if len(reviews) == 0:
return ...
可能更暗示意图。尝试其中之一。