使用 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)
我正在尝试从 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)