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

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

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

前言

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


项目结构

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

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

  • 前端部分

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

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

    Flask 实现

  • 安装依赖:```bash pip install flask flask-cors
  • 2. 创建 `app.py` 文件:
    ```python
    from flask import Flask, jsonify
    from flask_cors import *
    import random
    app = Flask(__name__)
    app.config['JSON_AS_ASCII'] = False
    CORS(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. 运行:```bash python app.py
    2. ---
      #### Express 实现
      1. 安装依赖:```bash
      npm 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. 运行:```bash node app.js
        2. ---
          #### Beego 实现
          1. 安装 Go 和 Beego:```bash
          go get -u https://github.com/astaxie/beego
          1. 创建 app.go 文件:
          2. package main
            import (
            "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. 运行:```bash go run app.go
            2. ---
              #### 项目效果
              1. 数据展示:页面加载后自动显示各科目成绩柱状图。
              2. random 刷新:点击按钮后,数据会重新随机生成并展示。
              3. 跨域支持:前后端互通无阻。
              ---
              #### 结语
              本文通过 ECharts 实现了一个简单的学科成绩可视化页面,并分别使用 Flask、Express、Beego 搭建后台 API。感谢您的阅读,欢迎留言讨论!

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

    你可能感兴趣的文章
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
    查看>>
    NIH发布包含10600张CT图像数据库 为AI算法测试铺路
    查看>>
    Nim教程【十二】
    查看>>
    Nim游戏
    查看>>
    NIO ByteBuffer实现原理
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NIO Selector实现原理
    查看>>
    nio 中channel和buffer的基本使用
    查看>>
    NIO三大组件基础知识
    查看>>
    NIO与零拷贝和AIO
    查看>>
    NIO同步网络编程
    查看>>
    NIO基于UDP协议的网络编程
    查看>>
    NIO笔记---上
    查看>>
    NIO蔚来 面试——IP地址你了解多少?
    查看>>
    NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
    查看>>
    NISP国家信息安全水平考试,收藏这一篇就够了
    查看>>
    NIS服务器的配置过程
    查看>>
    Nitrux 3.8 发布!性能全面提升,带来非凡体验
    查看>>