1

我想使用 python 包chartkick-0.4.0在我的烧瓶应用程序中添加图表。但是,我是烧瓶的新手并且在设置它时遇到了麻烦。该readme项目的文件指出:

 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 添加到我的模板/js 文件夹中。然而,线

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

抛出一个

NameError: "chartstic" is not defined.

我究竟做错了什么 ?如何使用烧瓶正确设置图表杆?

这是我的模板:

<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 %}

更新* * 这是我现在的意见文件:

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)
4

1 回答 1

2

问题真的很简单。您在此语句中有无效的 HTML:

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

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

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

现在你应该得到你的图表了。

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

于 2013-11-14T15:23:38.500 回答