Chartkick是一款简单好用的图表绘制软件,主要用于ruby、python、js等语言,仅需要一行代码就可以绘制出漂亮的图表。软件操作简单,体积小,使用方便,支持多数浏览器,推荐大家下载使用!
Chartkick功能



chartkick配合flask画报表教程
代码结构如下:
[root@361way chartkick]# tree
.
├── run.py
├── static
│ ├── chartkick.js
│ ├── highcharts.js
│ └── jquery.min.js
└── templates
└── index.html
一、run.py
代码如下:
[root@361way chartkick]# cat run.py
from flask import Flask, jsonify, render_template, request
import chartkick
#app = Flask(__name__, static_folder=chartkick.js())
app = Flask(__name__)
app.jinja_env.add_extension("chartkick.ext.charts")
@app.route('/')
@app.route('/index')
def index():
data = {'Chrome': 52.9, 'Opera': 1.6, 'Firefox': 27.7}
return render_template('index.html', data=data)
if __name__ == "__main__":
app.run(host="0.0.0.0",debug=True)
二、index.html
模板代码如下:
[root@361way chartkick]# cat run.py
from flask import Flask, jsonify, render_template, request
import chartkick
#app = Flask(__name__, static_folder=chartkick.js())
app = Flask(__name__)
app.jinja_env.add_extension("chartkick.ext.charts")
@app.route('/')
@app.route('/index')
def index():
value = {'Chrome': 52.9, 'Opera': 1.6, 'Firefox': 27.7}
return render_template('index.html', data=value)
if __name__ == "__main__":
app.run(host="0.0.0.0",debug=True)
[root@361way chartkick]# cat templates/index.html
{% bar_chart data with style="width:200px; height:20px;" %}
{% pie_chart data %}
由于测试主机上不能上外网,所以这里将js文件下载到了本地,并配置为url_for路径。
python run.py运行后,在浏览器中打开http://127.0.0.1:5000就可以看到上面截图的效果了。
三、乱码问题
使用中文数据时会遇到乱码问题,解决方法是用 json 的 dumps 方法 将 dict 或者 list 转换成可以正常显示的中文字符串。如下:
#先import json模块
return render_template('index.html', data=value)
更换为
return render_template('index.html', data=json.dumps(value, encoding='utf-8',indent=4))

更新日志
Chartkick v2.2.3更新日志
将Chartkick.js更新为2.2.3
将Chart.js更新为2.5.0