【发布时间】:2017-08-06 20:35:48
【问题描述】:
我正在使用烧瓶建立一个网站。在 app.py 文件中,我计算了一些传递给 html 页面的统计信息。
@app.route('/')
def index():
values = [10, 11, 7, 15, 19, 5, 7.5, 10.9]
days= ["12/18/18","12/25/18","1/1/19","1/8/19","1/15/19","1/22/19","1/29/19","2/5/19"]
return render_template('index.html', days = days, values=values)
index.html中的javascript如下
var ctx = document.getElementById("lineChart");
var lineChart = new Chart(ctx, {
type: 'line',
data: {
labels: {{days}}
datasets: {
label: "All users",
backgroundColor: "rgba(30,144,255, 0.31)",
borderColor: "rgba(30,144,255, 0.7)",
pointBorderColor: "rgba(30,144,255, 0.7)",
pointBackgroundColor: "rgba(30,144,255, 0.7)",
pointHoverBackgroundColor: "#fff",
pointHoverBorderColor: "rgba(220,220,220,1)",
pointBorderWidth: 1,
data: {{values}}
}
},
});
我在 javascript 中测试了两个选项:
-
不工作(无法生成图表)
labels: {{days}} data: {{values}} -
如果我明确给出字符串列表就可以工作
labels: ["12/18/18","12/25/18","1/1/19","1/8/19","1/15/19","1/22/19","1/29/19","2/5/19"] data: {{values}}
似乎传递数字数组(本例中的值)很好,但传递字符串列表会带来麻烦。
您对解决这个问题有什么建议吗?
非常感谢!
【问题讨论】:
-
这个answer 可能会有所帮助。
-
是的,他们说的,你需要把它放在带有
{{data | safe}}过滤器的模板中 -
谢谢!当我在本地 Windows pc 中托管应用程序时,“安全”方法解决了这个问题!但是如果我使用 Apache2 在 Ubuntu 机器上部署它会失败。你知道可能是什么原因吗?
-
我又添加了一个解决问题的方法:{{data | tojson |安全}}
标签: javascript python html flask mustache