博客
关于我
echarts异步请求后台数据(flask, express, beego版本)
阅读量:808 次
发布时间:2019-03-25

本文共 3095 字,大约阅读时间需要 10 分钟。

使用ECharts搭建数据可视化案例及前后端搭建( Flask, Express, Beego)

前言

ECharts 是一个强大的可视化 JS 库,功能强大且易于使用。通过本文案例,大家将从头到尾学习如何用 ECharts 实现一个简单的数据可视化页面,并通过 Flask、Express、Beego 三个框架分别搭建后台服务器。


项目结构

项目主要包含以下几个部分:

  • Frontend(前端):用于创建数据可视化页面,包括数据展示和数据请求功能。
  • Backend(后端):通过 Flask、Express、Beego 分别搭建后台 API,提供数据随机生成接口。

  • 前端部分

    前端页面主要包含以下功能:

  • 依赖文件加载:加载 ECharts 和 jQuery 函数文件。
  • 数据请求:通过 AJAX 获取后台生成的数据。
  • 数据展示:使用 ECharts 绘制柱状图,显示各科目成绩。
  • 自动刷新:页面一刷新就会重新获取数据。
  •     
    成绩可视化

    Flask 实现

  • 安装依赖:```bashpip install flask flask-cors
  • 2. 创建 `app.py` 文件:```pythonfrom flask import Flask, jsonifyfrom flask_cors import *import randomapp = Flask(__name__)app.config['JSON_AS_ASCII'] = FalseCORS(app, supports_credentials=True)@app.route('/random')def get_random_data():    subjects = ['Chinese', 'Mathematics', 'English', 'Physics', 'History',                'Politics', 'Geography', 'Chemistry', 'Biology']    data = {s: random.randint(1, 100) for s in subjects}    return jsonify(data)if __name__ == '__main__':    app.run(host='0.0.0.0', port=3000)
    1. 运行:```bashpython app.py
    2. ---#### Express 实现1. 安装依赖:```bashnpm install express
      1. 创建 app.js 文件:
      2. const express = require('express');const app = express();const allowCross = function(req, res, next) {    res.header('Access-Control-Allow-Origin', '*');    next();};app.use(allowCross);function getRandomInt(max) {    return Math.floor(Math.random() * Math.floor(max));}app.get('/random', function(req, res) {    const subjects = ['Chinese', 'Mathematics', 'English', 'Physics', 'History',                      'Politics', 'Geography', 'Chemistry', 'Biology'];    const scores = {};        for (const subject of subjects) {        scores[subject] = getRandomInt(101);    }        res.json(scores);});const server = app.listen(3000, function() {    const port = server.address().port;    console.log('访问地址为 http://127.0.0.1:%s', port);});
        1. 运行:```bashnode app.js
        2. ---#### Beego 实现1. 安装 Go 和 Beego:```bashgo get -u https://github.com/astaxie/beego
          1. 创建 app.go 文件:
          2. package mainimport (    "encoding/json"    "fmt"    "math/rand"    "github.com/astaxie/beego"    "github.com/astaxie/beego/context"    "github.com/astaxie/beego/plugins/cors")func main() {    beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{        AllowAllOrigins: true,    }))    beego.Get("/random", func(c *context.Context) {        scores := make(map[string]int)        subjects := []string{            "Chinese", "Mathematics", "English", "Physics",             "History", "Politics", "Geography", "Chemistry", "Biology"        }                for _, subject := range subjects {            scores[subject] = rand.Intn(101)        }                data, err := json.MarshalIndent(scores, "", "\t")        if err != nil {            fmt.Printf("错误:%v\n", err)            return        }                c.Output.JSON(data, true, true)    })    beego.Run("localhost:3000")}
            1. 运行:```bashgo run app.go
            2. ---#### 项目效果1. 数据展示:页面加载后自动显示各科目成绩柱状图。2. random 刷新:点击按钮后,数据会重新随机生成并展示。3. 跨域支持:前后端互通无阻。---#### 结语本文通过 ECharts 实现了一个简单的学科成绩可视化页面,并分别使用 Flask、Express、Beego 搭建后台 API。感谢您的阅读,欢迎留言讨论!

    转载地址:http://vfayk.baihongyu.com/

    你可能感兴趣的文章
    Nginx配置负载均衡到后台网关集群
    查看>>
    Nginx配置限流,技能拉满!
    查看>>
    Nginx配置静态代理/静态资源映射时root与alias的区别,带前缀映射用alias
    查看>>
    Nginx面试三连问:Nginx如何工作?负载均衡策略有哪些?如何限流?
    查看>>
    Nginx:NginxConfig可视化配置工具安装
    查看>>
    ngModelController
    查看>>
    ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
    查看>>
    ngrok内网穿透可以实现资源共享吗?快解析更加简洁
    查看>>
    NHibernate学习[1]
    查看>>
    NHibernate异常:No persister for的解决办法
    查看>>
    NIFI1.21.0_java.net.SocketException:_Too many open files 打开的文件太多_实际操作---大数据之Nifi工作笔记0051
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
    查看>>
    NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
    查看>>
    NIFI1.21.0最新版本安装_连接phoenix_单机版_Https登录_什么都没改换了最新版本的NIFI可以连接了_气人_实现插入数据到Hbase_实际操作---大数据之Nifi工作笔记0050
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
    查看>>
    NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
    查看>>