使用烧瓶路由查询sqlite

用户名

我正在尝试使用烧瓶路由查询我的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 %}

谁能看到问题所在?

大量的

该错误可能在其他地方,因为这对我有用:

档案demo.py

#!/usr/bin/env python3

from flask import Flask, g, render_template
import sqlite3

app = Flask(__name__)

@app.route('/movies/genres/<name>/')
def test(name=None):
    g.db = connect_db()
    cur = g.db.execute('select id, name 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)


def connect_db():
    return sqlite3.connect('example.db')

def init_db():
    conn = connect_db()
    c = conn.cursor()
    try:
        c.execute('create table movies (id int, name text, category text)')
        c.execute('insert into movies (id, name, category) values (?, ?, ?)', (1, 'Alien', 'sci-fi'))
        c.execute('insert into movies (id, name, category) values (?, ?, ?)', (2, 'Aliens', 'sci-fi'))
        c.execute('insert into movies (id, name, category) values (?, ?, ?)', (3, 'Prometheus', 'sci-fi'))
    except sqlite3.OperationalError as e:
        assert 'table movies already exists' in str(e)
    conn.commit()
    conn.close()

def main():
    init_db()
    app.run(debug=True)


if __name__ == '__main__':
    main()

档案templates/test.html

<ul>
    {%- for movie in movies %}
        <li>{{ movie.movie_name }}</li>
    {%- endfor %}
</ul>

安慰:

$ ./demo.py &
 * Running on http://127.0.0.1:5000/
$ curl 127.0.0.1:5000/movies/genres/sci-fi/
<ul>
        <li>Alien</li>
        <li>Aliens</li>
        <li>Prometheus</li>
</ul>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用烧瓶路由查询sqlite

来自分类Dev

使用add_url()添加的烧瓶删除路由

来自分类Dev

如何在Google Cloud功能上使用烧瓶路由?

来自分类Dev

烧瓶路由,多种路由功能

来自分类Dev

烧瓶和React路由

来自分类Dev

烧瓶表单路由

来自分类Dev

烧瓶表单路由

来自分类Dev

集中烧瓶路由

来自分类Dev

从预定函数路由烧瓶

来自分类Dev

使用.htaccess路由php查询

来自分类Dev

使用Java的sqlite查询

来自分类Dev

使用Python的SQLite查询

来自分类Dev

使用AND的Android sqlite查询

来自分类Dev

SQLite:使用索引查询

来自分类Dev

烧瓶使用标记的db查询返回作为参数?

来自分类Dev

烧瓶:连接到sqlite

来自分类Dev

烧瓶HTML链接查询

来自分类Dev

烧瓶,打破查询?

来自分类Dev

使用selectionArgs编写查询SQLite

来自分类Dev

可以在 Angular 中路由之前使用查询参数记录路由

来自分类Dev

使用大型URL查询进行路由

来自分类Dev

使用角度ui路由传递查询参数

来自分类Dev

ReactJS - 使用查询参数获取路由

来自分类Dev

使用 React 路由器查询参数

来自分类Dev

查询SQLite时是否需要一个生成器,也许是用于烧瓶循环的SQLAlchemy?

来自分类Dev

烧瓶网页是否在末尾路由正斜杠?

来自分类Dev

从蓝图中获取烧瓶静态路由

来自分类Dev

使用url_for重定向到烧瓶中带有查询参数的路径

来自分类Dev

(烧瓶)python-mysql-在带有URL变量的select查询中使用where子句