转换 mysql 查询 return 类型
convert mysql query return type
我正在为 Flask 中的一个学校项目开发一个网络应用程序。我对 python 和烧瓶很陌生。
在函数 "get_absence" 中,我正在执行 mysql 查询并得到结果。 (查询在 mysql 命令行中运行并给出输出 15)但是我在 html 页面上的结果是“(Decimal('15'),)”的形式。我想提取出数字,以便我只能在网络上显示 15。我怎样才能做到这一点?
查询结果从 get_absence 到 API 函数 get_info,然后发送到 html 页面 "page.html"。它在页面上显示为“(Decimal('15'),)”。
我无法将元组转换为整数。任何人?
util.py:
def get_absence(database):
try:
days = []
cur = database.cursor()
cur.execute(queries["select SUM(dates) FROM leaves WHERE
emp_id = 14"])
for a in cur:
num = a;
return a
except:
return jsonify("Internal server error"), 500
finally:
cur.close()
烧瓶app.py:
@app.route("/get_info/", methods=["GET"])
def get_info():
db = get_db()
cur = db.cursor(buffered=True)
try:
days = get_absence(get_db() )
return render_template("page.html", days=days)
except mysql.connector.Error as err:
return render_template("error.html", err = err)
finally:
cur.close()
HTML:
<h1>"{{ days }}" </h1>
渲染时,broswer 显示:
"(小数('15'),)"
execute
方法将始终 return 一个迭代器,其中每个元素都是一个元组,表示具有多个列的行。
然后在你的情况下,你只需从 "days" tumple 中取出第一个元素:
days[0]
那么您将拥有一个 decimal
对象。您可以将其四舍五入为整数:
int(days[0])
此外,如果您需要单个元素,则可以使用 cursor.fetchone()
以避免对 cur 对象进行 for 循环。
您可以阅读更多信息here
我正在为 Flask 中的一个学校项目开发一个网络应用程序。我对 python 和烧瓶很陌生。
在函数 "get_absence" 中,我正在执行 mysql 查询并得到结果。 (查询在 mysql 命令行中运行并给出输出 15)但是我在 html 页面上的结果是“(Decimal('15'),)”的形式。我想提取出数字,以便我只能在网络上显示 15。我怎样才能做到这一点?
查询结果从 get_absence 到 API 函数 get_info,然后发送到 html 页面 "page.html"。它在页面上显示为“(Decimal('15'),)”。
我无法将元组转换为整数。任何人?
util.py:
def get_absence(database):
try:
days = []
cur = database.cursor()
cur.execute(queries["select SUM(dates) FROM leaves WHERE
emp_id = 14"])
for a in cur:
num = a;
return a
except:
return jsonify("Internal server error"), 500
finally:
cur.close()
烧瓶app.py:
@app.route("/get_info/", methods=["GET"])
def get_info():
db = get_db()
cur = db.cursor(buffered=True)
try:
days = get_absence(get_db() )
return render_template("page.html", days=days)
except mysql.connector.Error as err:
return render_template("error.html", err = err)
finally:
cur.close()
HTML:
<h1>"{{ days }}" </h1>
渲染时,broswer 显示: "(小数('15'),)"
execute
方法将始终 return 一个迭代器,其中每个元素都是一个元组,表示具有多个列的行。
然后在你的情况下,你只需从 "days" tumple 中取出第一个元素:
days[0]
那么您将拥有一个 decimal
对象。您可以将其四舍五入为整数:
int(days[0])
此外,如果您需要单个元素,则可以使用 cursor.fetchone()
以避免对 cur 对象进行 for 循环。
您可以阅读更多信息here