用mysql和flask显示多条记录

时间:2016-11-21 01:12:01

标签: mysql python-3.x flask flask-mysql

我试图从表中获取一些内容

我的代码如下:

@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()时,它说记录太多了:/

如何修复我的代码以实际显示表

中的所有标题

2 个答案:

答案 0 :(得分:0)

您无法从终端返回任意内容。您需要返回类似响应的对象。它可以是字符串,Response的实例,也可以是包含响应主体的元组,(可选)状态代码和标头。

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

from flask import jsonify

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

答案 1 :(得分:0)

这是我在我的测试程序中连接到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)