当前位置: 首页 > 知识库问答 >
问题:

将数据(从SQLite查询获得)从Flask发送到Javascript以创建图表

左翰海
2023-03-14

我有一个数组数据(在我的flask视图中是一个python列表),它是在查询我的DB之后获得的。

现在我想使用这些列表作为饼图中的标签和数据,使用chart.js构建

烧瓶

@app.route("/")
@login_required
def index():
[...]
    row = db.execute("SELECT DISTINCT symbol FROM transactions WHERE user_id = :user_id", user_id=session['user_id'])
    labels = []
    data = []
    for l in row:
        labels.append(l.get('symbol'))
    

    rowD = db.execute("SELECT SUM(shares) AS shares FROM transactions WHERE user_id = :user_id GROUP BY symbol", user_id=session['user_id'])
    for d in rowD:
        data.append(d.get('symbol'))
    return render_template("index.html", labels=labels, data=data)

HTML

 <canvas id = "myChart"></canvas>

    <script type="text/javascript">

        let ctx = document.getElementById('myChart').getContext('2d');
        var myPieChart = new Chart(ctx, {
            type: 'pie',
            data: {
                labels:  {{ labels | tojson }},
                datasets: [{
                    data: {{ data | tojson }}
            }]
          },
    });
    </script>

但是我继续从JS得到一个错误(解析错误:意外标记{)并且我的图表总是为空,它不会出现在页面上

有什么需要帮忙的吗?

我正在使用一些简化,我对编程很陌生,所以我还在学习谢谢

共有1个答案

孙渝
2023-03-14

在第二个for循环中,您试图获取查询中不存在的列:

rowD = db.execute("SELECT SUM(shares) AS shares FROM transactions WHERE user_id = :user_id GROUP BY symbol", user_id=session['user_id'])
for d in rowD:
    data.append(d.get('symbol'))

这应该是:

rowD = db.execute("SELECT SUM(shares) AS shares FROM transactions WHERE user_id = :user_id GROUP BY symbol", user_id=session['user_id'])
for d in rowD:
    data.append(d.get('shares'))
 类似资料:
  • 我正在尝试在我的网站上实现一个拖放文件上传器。文件被删除后立即上传,我想生成一个URL与flask将弹出在预览。我正在使用Dropzone.js。在dropzone的文档中,提供了一个示例,作为将数据从服务器发回并在文件上载后显示的指南。https://github.com/enyo/dropzone/wiki/faq#i-want-to-display-additution-informatio

  • 问题内容: 我想知道是否有一种方法可以从HTML的文本框中获取内容,将其输入flask,然后使用Python解析该数据。我以为这可能涉及一些JS,但我可能是错的。有任何想法吗? 问题答案: 除非你想做更复杂的事情,否则将数据从HTML表单输入Flask非常简单。 创建一个接受POST请求()的视图。 访问字典中的表单元素。

  • 问题内容: 如何将JSON数据从浏览器中的Javascript发送到服务器,并由PHP在其中进行解析? 问题答案: 我在这里获得了很多信息,所以我想发布我发现的解决方案。 问题: 从浏览器上的Javascript获取JSON数据到服务器,然后让PHP成功解析它。 环境: Windows上的浏览器(Firefox)中的Javascript。LAMP服务器作为远程服务器:Ubuntu上的PHP 5.3

  • 问题内容: 我有这个小点击计数器。我想将每次单击都包含在mysql表中。有人可以帮忙吗? 万一有人想看看我做了什么: 这是phpfile.php,出于测试目的,将数据写入txt文件 问题答案: 您的问题中定义的JavaScript不能直接与MySql一起使用。这是因为它不在同一台计算机上运行。 JavaScript在客户端(在浏览器中)运行,并且数据库通常在服务器端存在。您可能需要使用中间服务器端

  • 问题内容: 我的jphp.php文件包含以下内容: 并且我的javascript文件包含以下内容: 我已经用php编码了数据数据..现在我想将这两个数据数组发送到javascript …我不知道要使用的正确命令。我对谷歌搜索感到困惑。 请帮忙 。 问题答案: 使用jQuery的简单特定示例: JavaScript页面: 在您的php中:

  • 问题内容: 我知道如何使用jinja模板将数据从python传递到javascript,但是我想将javascript变量传递到python。我想这样做而无需重新加载页面。那可能吗? 问题答案: 是的,就像monkut所说的那样-我相信您想使用JSON和Javascript / jQuery。 这将允许从客户端到服务器的通讯,然后再返回。 我发现的最适用的示例是在Flask片段/模式中:http