使用Flask统计phpMyAdmin数据库数据时为何输出非纯数字格式
Flask统计MySQL表行数返回元组问题解决方案
你获取到的(2,)格式结果是Python MySQL查询的标准返回形式:fetchone()方法会将单行查询结果封装为元组,即使仅查询COUNT(*)单个字段,也会返回单元素元组,元组的第1位元素就是你需要的纯数字计数值。
可以通过以下两种方式解决,更推荐第一种后端处理的方案:
方案1:后端提取数值后传给模板
直接提取元组的第一个元素即可,同时修正原代码存在的缩进错误(原代码if块内代码缩进、else与if未对齐的问题均会导致运行报错),修改后代码如下:
@app.route("/adminPanel", methods=['GET', 'POST']) def adminPanel(): if 'adminName' in session: cur = mysql.connection.cursor() cur.execute("SELECT COUNT(*) FROM adminaccount") # 提取单元素元组首位的纯数字计数结果 display2 = cur.fetchone()[0] cur.close() adminName = session['adminName'] return render_template("adminPanel.html", adminName=adminName, display2=display2) else: return redirect(url_for('adminLogin'))
注意:原代码中
cur.execute()的返回值result1在不同MySQL驱动下表现不一致,不要用该值作为计数结果,从查询返回的结果集中取值是最稳妥的方式。
方案2:模板层直接取值(临时方案)
如果不想修改后端代码,可直接在adminPanel.html模板中取值时补充索引:
<!-- 原写法如果为 {{ display2 }},修改为如下即可拿到纯数字 --> {{ display2[0] }}
内容的提问来源于stack exchange,提问作者Noname
相关产品推荐
相关产品推荐

