使用 mysql 和 flask 显示多条记录

display more than one record with mysql and flask

我正在尝试从 table

中获取一些内容

我的代码如下所示:

@app.route('/')
def home():
    cursor = mysql.connect().cursor()
    cursor.execute("SELECT titlle from cards ORDER BY id desc")
    data = cursor.fetchone()
    return data

但它只显示了一个,因为...我正在使用 fetchone() 但是当我使用 fetchall() 时,它说记录太多了:/

如何修改我的代码以实际显示 table cards

中的所有 titles

您不能 return 来自端点的任意内容。你需要 return response-like objects。它可以是字符串、Response 的实例或包含响应 body、(可选)状态代码和 headers 的元组。

我猜您想使用这些标题在 JavaScript 中做一些事情。您可能希望在 JSON 响应中发送它们。为此,请使用 jsonify

from flask import jsonify

# snip
return jsonify(titles=[row['title'] for row in cursor.fetchall()])

这就是我在测试程序中连接到 mariadb 或 mysql 所做的,它正在运行:

@main.route('/mariadb')
def mariab():
    print current_app.config['MYSQL_USER']
    print current_app.config['MYSQL_DB']
    cur = mysql.connection.cursor()
    cur.execute('SELECT titlle from cards ORDER BY id desc')
    entries = cur.fetchall()
    print entries
    return render_template('mariadb.html',
                           database=current_app.config['MYSQL_DB'],
                           user=current_app.config['MYSQL_USER'],
                           entries=entries)