ECharts是一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。

本文通过echarts官网上的一个标准样例开始flask+ajax+echarts的第一步。

第一步:下面是从echarts官网上下载的一个样例,具体参见:https://echarts.apache.org/handbook/zh/get-started,在flask中进行路由定义即可。

@app.route('/echart1')
def bigscreen():
return render_template('echartexample.html')
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><!-- 引入刚刚下载的 ECharts 文件 --><!--script src="..\static\js\echarts.min.js"></script--><script src="/static/js/echarts.min.js"></script></head><body><!-- 为 ECharts 准备一个定义了宽高的 DOM --><div id="main" style="width: 600px;height:400px;"></div><script type="text/javascript">// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('main'));// 指定图表的配置项和数据var option = {title: {text: 'ECharts 入门示例'},tooltip: {},legend: {data: ['销量']},xAxis: {data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']},yAxis: {},series: [{name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20]}]};// 使用刚指定的配置项和数据显示图表。myChart.setOption(option);</script></body></html>

第二步:在flask中增加ajax逻辑接口,通过jsonfiy进行数据组装和返回。

@app.route('/getjson2', methods=['GET'])
def getjson2():reporttitle = '销量测试'goodstype = ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']salenum = [5, 20, 36, 10, 10, 20]data = {'reporttitle': reporttitle, 'goodstype': goodstype, 'salenum': salenum, }return jsonify({'reporttitle': reporttitle, 'goodstype': goodstype, 'salenum': salenum, })@app.route('/echartdemo2')
def echartdemo2():return render_template('echartdemo2.html')

在html中增加ajax代码实现。

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><!-- 引入刚刚下载的 ECharts 文件 --><!--script src="..\static\js\echarts.min.js"></script--><script src="/static/js/echarts.min.js"></script><script src="/static/js/jquery.js"></script></head><body><!-- 为 ECharts 准备一个定义了宽高的 DOM --><div id="main" style="width: 600px;height:400px;"></div><script type="text/javascript">// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('main'));// 指定图表的配置项和数据myChart.option = {title: {text: 'ECharts 入门示例'},tooltip: {},legend: {data: ['销量']},xAxis: {data: []},yAxis: {},series: [{name: '销量',type: 'bar',data: []}]};alert('waiting....');// 使用刚指定的配置项和数据显示图表。myChart.showLoading();$.ajax({url:'/getjson2',result:{},type:'GET',dataType:'json',success:function(result){myChart.hideLoading();// 填入数据myChart.setOption({title: {text: '异步数据加载'},xAxis:{data:result.goodstype},yAxis: {},series:[{name:'销量',type: 'bar',data:result.salenum}]})},error:function (msg) {console.log(msg);alert('系统发生错误');}})</script></body></html>

第三步:通过数据库返回结果集再生成json,封装成路由,由前台调用

关于数据库返回json可参考前文

@app.route('/getjson3', methods=['GET'])
def getjson3():sql = 'select goodstype,salenum from saledata'result = db.session.execute(sql)# jsonify data1result = result.mappings().all()goodstype = [x['goodstype'] for x in result]salenum = [x['salenum'] for x in result]data = jsonify({'goodstype': goodstype, 'salename': salenum})# b'{"goodstype":["\\u886c\\u886b","\\u7f8a\\u6bdb\\u886b","\\u96ea\\u7eba\\u886b","\\u88e4\\u5b50","\\u9ad8\\u8ddf\\u978b","\\u889c\\u5b50"],# "salename":[5,20,36,10,10,20]}\n'# jsonify data2data = jsonify(goodstype=goodstype, salename=salenum)# b'{"goodstype":["\\u886c\\u886b","\\u7f8a\\u6bdb\\u886b","\\u96ea\\u7eba\\u886b","\\u88e4\\u5b50","\\u9ad8\\u8ddf\\u978b","\\u889c\\u5b50"],# "salename":[5,20,36,10,10,20]}\n'# jsonify data3data = jsonify(goodstype=[x['goodstype'] for x in result],salenum=[x['salenum'] for x in result])# b'{"goodstype":["\\u886c\\u886b","\\u7f8a\\u6bdb\\u886b","\\u96ea\\u7eba\\u886b","\\u88e4\\u5b50","\\u9ad8\\u8ddf\\u978b","\\u889c\\u5b50"],# "salenum":[5,20,36,10,10,20]}\n'# jsonify data4result = db.session.execute(sql).fetchall()data = jsonify(goodstype=[x[0] for x in result],salenum=[x[1] for x in result])# b'{"goodstype":["\\u886c\\u886b","\\u7f8a\\u6bdb\\u886b","\\u96ea\\u7eba\\u886b","\\u88e4\\u5b50","\\u9ad8\\u8ddf\\u978b","\\u889c\\u5b50"],# "salenum":[5,20,36,10,10,20]}\n'return data@app.route('/echartdemo3')
def echartdemo3():return render_template('echartdemo3.html')

第三步的HTML文件和第二步完全相同

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><!-- 引入刚刚下载的 ECharts 文件 --><!--script src="..\static\js\echarts.min.js"></script--><script src="/static/js/echarts.min.js"></script><script src="/static/js/jquery.js"></script></head><body><!-- 为 ECharts 准备一个定义了宽高的 DOM --><div id="main" style="width: 600px;height:400px;"></div><script type="text/javascript">// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('main'));// 指定图表的配置项和数据myChart.option = {title: {text: 'ECharts 入门示例'},tooltip: {},legend: {data: ['销量']},xAxis: {data: []},yAxis: {},series: [{name: '销量',type: 'bar',data: []}]};// 使用刚指定的配置项和数据显示图表。myChart.showLoading();$.ajax({url:'/getjson3',result:{},type:'GET',dataType:'json',success:function(result){myChart.hideLoading();// 填入数据myChart.setOption({title: {text: '异步数据加载'},xAxis:{data:result.goodstype},yAxis: {},series:[{name:'销量',type: 'bar',data:result.salenum}]})},error:function (msg) {console.log(msg);alert('系统发生错误');}})</script></body></html>

关于flask入门教程-ajax+echarts简单实现一相关推荐

  1. 关于flask入门教程-ajax+echarts实现大屏展示

    陆陆续续写了一个系列的flask入门教程了,最后以一个半成品大屏做个了结,也算是一段时间的成果吧,毕竟不是专业码农,只是爱好而已,还有很多其他的事情等待探索. 大屏用到的技术主要包括标准的HTML.C ...

  2. 关于flask入门教程-ajax+echarts实现关系图

    关系图,从字面上可以看出,为关系的图形,既然为关系,那么就需要有点以及关系,用来表示点与点之间的联系.所以我们可以得出:关系图需要两个必要的元素,节点,关系,其中关系需要包含有联系的节点以及节点联系说 ...

  3. 关于flask入门教程-ajax+echarts实现地图GDP展示

    地图可视化就是将地理数据转换成可视化形态,通过将具有地域特征的数据或者数据分析结果形象地表现在地图上,使得用户可以更加容易理解数据规律和趋势.通俗地讲,地图可视化可以将地理数据更清晰直白地展现出来. ...

  4. 关于flask入门教程-ajax+echarts实现矩形树图

    矩形树图将层次结构的数据显示为一组嵌套矩形.树的每个分支都有一个矩形,然后用代表子分支的较小矩形平铺. 叶子节点的矩形面积与数据占比成比例.通常,叶节点会用不同的颜色来显示数据的关联维度. 矩形图要比 ...

  5. 关于flask入门教程-ajax+echarts实现热力图

    热力图 (Heatmap) 通过色彩变化来显示数据,热力图适合用来交叉检查多变量的数据.显示是否有彼此相似的变量:以及检测彼此之间是否存在任何相关性.也可以展现随着时间的变化指标的发展. 热力图依赖颜 ...

  6. 关于flask入门教程-ajax+echarts实现地图热力图

    热力图是通过密度函数进行可视化用于表示地图中点的密度的热图.它使人们能够独立于缩放因子感知点的密度. 以上是传统的热力图定义,现今热力图在网页分析.业务数据分析等其他领域也有较为广泛的应用. 1.热力 ...

  7. 关于flask入门教程-ajax+百度地图实现热力图

    热力图是通过密度函数进行可视化用于表示地图中点的密度的热图.它使人们能够独立于缩放因子感知点的密度. 前文也讲了关于max.pointsize.blursize这几个值一直也没找到最合适的处理办法.所 ...

  8. ROS2入门教程—创建一个简单的订阅者和发布者(C++版)

    ROS2入门教程-创建一个简单的订阅者和发布者(C++版) 1 创建功能包 2 创建发布者节点 3 设置发布者节点依赖项 4 设置发布者节点编译规则 5 创建订阅者 6 编译并运行   节点是通过RO ...

  9. 【前端实例代码】Html5+css3+JavaScript创建在线播放架子鼓电子鼓演奏网页效果!前端开发网页设计基础入门教程!超简单~

    b站视频演示效果: [前端实例代码]Html5+css3+JavaScript创建在线播放架子鼓电子鼓演奏网页效果!前端开发网页设计基础入门教程!超简单~ 效果图: 完整代码: <!DOCTYP ...

最新文章

  1. 贪吃蛇计时器怎么编写java_java编写简易贪吃蛇游戏
  2. eclipse安装JAVA反编译插件
  3. 网页页面设计如何做到极致舒适感?
  4. 恶意软件、Rootkit和僵尸网络
  5. Lint found fatal errors while assembling a release target
  6. 团队计划(5.25)
  7. Qt for Android 自定义启动页(解决启动页拉伸的问题)
  8. 前端又一本升级版图书上市了,听说比第一版还好看
  9. Oracle数据库基本概念理解(3)
  10. linux怎么删除代码库,是否有从代码库中删除第三方C和C库的好技巧或工具? (OS X或Linux)...
  11. python pep8_Python 代码风格 和 PEP8
  12. python wxpython backend wxagg_在wxPython中使用draw()(复制轴)绘制不正确
  13. springmvc文件下载之文件名下划线问题终极解决方案
  14. Python3.x中的三目运算实现方法
  15. Windows软件路由器运用实例之OSPF配置
  16. 在网站中使用谷歌“ROBOTO”字体(解决ios数字1和0大小不等宽问题)
  17. win10安装影子系统,导致电脑无限蓝屏,解决总结
  18. 2019最新黑马视频教程分享给大家十次方乐优商城项目下载
  19. Linux获取纳秒级时间,WINDOW和LINXU下获取纳秒级时间精度
  20. 知名休闲服饰品牌——慕尚集团借力泛微实现统一办公、业务协同

热门文章

  1. 在docker容器中执行exportfs -a命令提示不支持NFS导出
  2. 校园代取快递小程序,校园跑腿小程序系统设计与实现
  3. win10设置一些exe软件的开机自启动
  4. 【CV】医学图像|乳腺癌组织病理图像分类研究
  5. android 屏幕快捷键是什么,Android在主屏幕上创建快捷方式
  6. Geospatial
  7. 2-17 微信小程序regexp对象(附带方法解析)
  8. 关于不同商品具有不同属性的商品表设计
  9. 蒲公英 Ghost Win10(x86/x64)装机版/纯净版 2018.08
  10. 优盘插入组装电脑时显示驱动器可能已损坏要检查并修复驱动器请问如何才能修复??