我在模板中创建了一个链接,指向一个路由,该路由应该呈现一个页面,允许用户查看登录者的姓名,以及他们曾经发表的所有帖子。我做了必要的查询,但它告诉我类型错误:
Bool is not iterable.
我试图将变量转换成字符串,但它没有显示我需要的信息。我实际上需要访问整个表,以便可以自定义模板上显示的内容。我特别需要一个for循环来遍历表中的所有条目,并按我指定的列列出每个条目。你知道吗
这是路线:
@app.route('/users/<id>/view')
def view_user(id):
mysql = connectToMySQL('quotes_dash2')
query = 'SELECT * FROM quotes WHERE user_id = %(q_id);'
data = {
"q_id": id
}
userQuotes = mysql.query_db(query, data)
mysql2 = connectToMySQL('quotes_dash2')
query2 = "SELECT * FROM users WHERE id = %(us_id);"
data2 = {
"us_id": session['userid']
}
our_user = mysql2.query_db(query2, data2)
return render_template('view.html', userQuotes = userQuotes, ourUser = our_user)
这是我试图创建的模板(纯html):
<h1>{{ourUser['first_name']}} {{ourUser['last_name']}}'s Quotes</h1>
<ul>
{% for quote in userQuotes %}
<li>
{{ quote['author'] }}: {{ quote['quote_content'] }}
<hr>
</li>
{% endfor %}
</ul>
我希望这样,当我点击用户名(从另一个页面)时,它会将我带到一个视图页面,该页面的顶部有用户名,以及用户所发的所有帖子(它们是作者的引语)。我得到的是:
TypeError: 'bool' object is not iterable
回溯的重点是:
return render_template('view.html', userQuotes = userQuotes, ourUser = our_user)
以及
{% for quote in userQuotes %}
我知道userQuotes是一个bool,但我并不打算这样做,我不知道如何更改它,以便可以遍历由userQuotes表示的表。你知道吗
任何帮助都将不胜感激!你知道吗
我解决了问题。它现在起作用了。如果其他人遇到这个问题并感到好奇,问题是我不小心忘了在查询的结束括号后键入字母“s”。所以,应该是%(us\ id)而不是%(us\ id)。你知道吗
相关问题 更多 >
编程相关推荐