python - 为什么我的查询变成 bool 值,如何防止这种情况发生,以便我可以迭代它?

标签 python mysql

我在模板中创建了一个链接,该链接指向一个路由,该路由应该呈现一个页面,允许用户查看登录人员的姓名以及他们曾经发布的所有帖子。我进行了必要的查询,但它告诉我 TypeError:

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>

我希望当我点击用户的名字(从另一个页面)时,它会将我带到一个 View 页面,该页面的顶部有用户的名字,以及用户发布的所有帖子(他们'重新引用作者的话)。我得到的是:

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)s 而不是 %(us_id)。

关于python - 为什么我的查询变成 bool 值,如何防止这种情况发生,以便我可以迭代它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56403744/

相关文章:

python - 如果其中 1 列没有任何值,则隐藏 QTableWidget 中的行

Python,从元组列表中删除重复项

python - 使用 Python Paramiko 的嵌套 SSH

mysql - 错误 #1064 - MySQL 子查询中的 SQL 语法有错误

php - 拉维尔 : Having lot of problems converting SQL query to query builder

mysql - mysql中float(2,2)和float()的区别

python - 如何在 python 中使用两个列表创建字典?

python - 使用 Python 提取文件名中包含无效字符的文件

php - 如何选择键不变的多个键/值对?

mysql - Laravel 5.8 将 API 数据保存到数据库