You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask项目中如何将SQL查询的平均值仅以数字形式显示在HTML中?

解决方案

问题出在SQL查询未给计算结果指定别名,导致返回的字典键是完整的CAST(AVG(hours) AS int)表达式,模板渲染时输出了整个键值对。按以下两步修改即可:

1. 修改Python中的SQL查询语句

给计算列添加别名(比如avg_hours),让返回结果的键更清晰:

avg_hours = db.execute("SELECT CAST(AVG(hours) AS int) AS avg_hours FROM pain WHERE user_id = ?", user_id)

2. 修改HTML模板渲染逻辑

直接通过别名获取对应数值,无需输出整个字典:

方式一:直接取单条结果(推荐,因为AVG返回单个值)

<h4>Average Hours: {{ avg_hours[0].avg_hours }}</h4>

方式二:保留循环(适用于可能返回多条结果的场景)

{% for row in avg_hours %}
   <h4>Average Hours: {{ row.avg_hours }}</h4>
{% endfor %}

额外优化:处理空值情况

如果用户没有对应数据,AVG会返回NULL,可以添加默认值避免页面显示空值:

<h4>Average Hours: {{ avg_hours[0].avg_hours or 0 }}</h4>

内容的提问来源于stack exchange,提问作者Chenelle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 21:15:36