我通过 Flask 输出的 Chart.js 图形未显示所需的输出

我需要根据 SQLite 数据库 中的数据制作图表。我正在为这个特定项目使用 flask。基本上,该表有一个名为情绪的列,其中多次列出了情绪 - 悲伤、快乐和中性。我需要计算这些情绪在表格中出现的次数,然后以情绪为标签,以次数为条形绘制图表。

以下代码用于提取重复值的数量并将其附加到列表中。下面的代码正确地附加了列表中的值数。截至目前,输出显示了一个包含值的列表 - [6,33,7]

from flask import flask,render_template
import sqlite3

app = flask(__name__)

@app.route("/")
def graph_data():
    con = sqlite3.connect('gazemaster.db')
    cur = con.cursor()
    cur.execute('SELECT COUNT(emotion) FROM GazeData GROUP BY emotion')
    values = []
    for row in cur.fetchall():
        values.append(row[0])

    return render_template("graph.html",values = values)

  
if __name__ == "__main__":  
    app.run(debug = True) 

下面显示的代码是将显示图形输出的 HTML 文件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="x-ua-compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Graph Sample</title>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

</head>
<body>
    <canvas id="barChart"></canvas>
    <script>
       var ctx = document.getElementById("barChart").getcontext("2d");
       var lineChart = new Chart(ctx,{
           type:"bar",data:{
               labels: ['Happy','Sad','Neutral'],datasets:[{
                    label: "Emotion",data: "{{ values | safe }}",backgroundColor: ["#3e95cd","#8e5ea2","#3cba9f"],}]
           },})  
    </script>  
</body>
</html>

然而,显示的输出是这样的 -

This is the output shown; it shows only one value when the list clearly is [6,7]

我注意到,如果我添加更多标签,会出现其他值,但这不是我想要的,因为它会将其他标签留空。另外,它将 33 视为 3-3。

我觉得我犯了一个愚蠢的错误,但我无法指出。

wellen2oo3 回答:我通过 Flask 输出的 Chart.js 图形未显示所需的输出

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1160.html

大家都在问