python - 使用 Flask 设置 Chartkick 时遇到问题

标签 python highcharts flask jinja2

我想使用python包chartkick-0.4.0在我的 flask 应用程序中添加图表。但是,我对 Flask 很陌生,在设置它时遇到了麻烦。该项目的自述文件指出:

 Add chartkick to jinja_env and static_folder:

 app = Flask(__name__, static_folder=chartkick.js(),
 static_url_path='/static')
 app.jinja_env.add_extension("chartkick.ext.charts")

我已将 Chartstick.js 添加到我的 templates/js 文件夹中。然而,该行

app=Flask(__name__,static_folder=chartkick.js(), static_url_path='/static/js/')

抛出

NameError: "chartstic" is not defined.

我做错了什么?如何使用 flask 正确设置图表棒?

这是我的模板:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src=""{{ url_for('static', filename='js/chartkick.js') }}"></script>
{% bar_chart data %}

更新**,这是我现在的 View 文件:

from flask import Flask, jsonify, render_template, request
import chartkick

app=Flask(__name__,static_folder=chartkick.js(), static_url_path='/static/js/')
app.jinja_env.add_extension("chartkick.ext.charts")


@app.route('/chart')
def first_graph():
    data = {'Chrome': 52.9, 'Opera': 1.6, 'Firefox': 27.7}
        return render_template('first_graph.html', data=data)

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

最佳答案

问题其实很简单。此语句中的 HTML 无效:

<script src=""{{ url_for('static', filename='js/chartkick.js') }}"></script>

请注意左侧双引号。第二个问题是您必须指定没有路径的 Javascript 文件。修正了这两个错误后的语句变为:

<script src="{{ url_for('static', filename='chartkick.js') }}"></script>

现在您应该得到图表了。

注意:他们的文档告诉您设置静态路径文件夹的方式很糟糕。它们基本上将应用程序的静态文件夹指向它们自己的文件夹,这将阻止您拥有任何自己的静态文件。处理此问题的更好方法是为 Chartkick 创建蓝图,并将蓝图的静态文件夹指向其 Javascript 文件。

关于python - 使用 Flask 设置 Chartkick 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19970383/

相关文章:

python - 有没有办法控制 Apache Arrow 批量大小?

python - 每次特定列的字符串内容发生变化时从 0 重新启动索引

python - pylint导入和动态路径修改

python - python中带有条件的if语句

javascript - Highcharts zIndex 十字准线问题

python - 验证参数时 webargs 出现异常

Highcharts JSON 调用的 javascript 关联数组、循环和/或范围问题

javascript - 如何在 Highcharts 中使 HTML 表格中的每一行成为饼图?

python - 如何阻止 Pepper 机器人抢占其平板电脑?

windows - 无法从 Windows 主机访问在虚拟框中运行的 flask 服务器