我运行的查询如下:
SELECT post_title, post_name FROM wp_posts WHERE post_status='publish' ORDER BY RAND() LIMIT 3
输出的信息包括:
^{pr2}$试着用app.py
来命名烧瓶:
@app.route('/', methods=('GET', 'POST'))
def email():
blogposts = c.execute("SELECT post_title, post_name FROM wp_posts WHERE post_status='publish' ORDER BY RAND() LIMIT 3")
return render_template('index.html', form=form, blogposts=blogposts)
在我的模板中,我调用blogposts
类似于:
{% for blogpost in blogposts %}
<li><a href="{{blogpost[1]}}">{{blogpost[0]}}</a></li>
{% else %}
<li>no content...</li>
{% endfor %}
但我得到一个错误:
{% for blogpost in blogposts %}
TypeError: 'int' object is not iterable
我做错什么了?在
pythonmysql(和其他数据库)连接器中的
.execute
调用不直接返回数据库结果。(在本例中,它返回匹配的记录数)。在您必须进一步调用数据库驱动程序以检索实际的
select
结果。更简单的方法是.fetchall()
方法,它将以列表的形式返回所有选定的结果。在简而言之,将这两行的调用改为
execute
:相关问题 更多 >
编程相关推荐