【发布时间】:2015-10-27 00:02:06
【问题描述】:
我正在尝试使用烧瓶路由查询我的 sqlite 数据库,例如
@app.route ('/movies/genres/<name>/')
def test(name = None):
g.db = connect_db()
cur = g.db.execute('select * from movies where category = ?', [name])
movies = [dict(id=row[0], movie_name=row[1]) for row in cur.fetchall()]
g.db.close()
return render_template('test.html', movies=movies, name=name)
路由确实有效,但页面不显示数据库中的任何数据。
{% for movie in movies %}
<div>
<div class="well" style="width:220px; height:312px; float:left; margin:10px; padding:5px;">
<img src="{{ movie.poster }}" alt="uh oh" style="width:209px;height:300px"> {{ movie.movie_name }}
</div>
{% endfor %}
{% endblock %}
谁能看出问题出在哪里?
【问题讨论】:
-
您是否尝试过打印您的电影收藏?它会返回任何东西吗?如果您按预期返回电影,请发布您的 test.html。您的模板可能有问题
-
那么 name 参数可能有问题。尝试在呼叫路线时打印姓名。
-
添加了上面的模板。它在我在 sql 查询中指定类别时起作用
-
是的,当我返回它时它会打印
-
当你执行像'/movies/genres/foo'这样的get请求并打印name时,它会打印foo吗?如果是这样,那么请确保您的 sql 查询中的名称周围有正确的引号。我认为SQL通常需要字符串值的引号