基于ECharts+JS+Flask 交互可视化呈现NBA近期比赛信息及球队排名及数据-源码
立即下载
资源介绍:
这个项目利用 ECharts、JavaScript 和 Flask 技术,构建了一个高度互动的 NBA 数据可视化平台。通过从两个开放数据接口实时获取最新的 NBA 球队和比赛数据,项目能够将这些信息以丰富多样的图表形式展现给用户,使得复杂的数据变得直观且易于理解。
前端部分使用 ECharts 进行数据的可视化展示,包括球队的表现、比赛的比分走势、球员的统计数据等。JavaScript 的引入进一步增强了用户的交互体验,用户可以通过点击、悬停等操作查看详细信息,甚至可以动态筛选和对比数据。
后端由 Flask 驱动,负责处理数据请求、接口管理以及与数据源的交互。Flask 的轻量级和灵活性使得后端开发更加高效,同时也保障了数据的实时性和准确性。通过后端的 API 服务,前端能够快速、无缝地获取和更新数据,确保用户始终看到最新的比赛信息。
,创建一个功能完善的 Web 应用。它不仅为球迷提供了一个全新的方式来观看和分析比赛,还为开发者提供了一个关于如何利用现代技术栈快速构建数据驱动型应用的参考示例
from flask import Blueprint, jsonify
import requests
import config
import json
import json_process
api_bp = Blueprint('api', __name__)
# https://dashboard.juhe.cn/data/index/my
# 赛程比分
# 'http://apis.juhe.cn/fapig/nba/query'
@api_bp.route('/api/getNBA_score_data')
def get_score_data():
apiUrl = 'http://127.0.0.1:5000//static/data/game_test.json'
apiKey = config.NBA_SCORE_API_KEY
requestParams = {'key': apiKey}
# {"error_code":10001,"reason":"错误的请求KEY","result":null,"resultcode":"101"}
try:
response = requests.get(apiUrl, params=requestParams)
response.raise_for_status() # 检查响应状态码是否为200
res = json.loads(response.text)
if res['error_code'] != 0:
return jsonify({'error': '请求异常', 'message': res['reason'], 'error_code': res['error_code']})
else:
# 去jso_process.py模块里把json转成二维列表再返回
return json_process.json_process_score(res)
except requests.exceptions.RequestException as e:
print(f'请求异常: {e}')
return jsonify({'error': '请求异常', 'message': str(e)})
# http://127.0.0.1:5000//static/data/rank_test.json
# 'http://apis.juhe.cn/fapig/nba/rank'
# 球队排名
@api_bp.route('/api/getNBA_rank_data')
def get_new_data():
apiUrl = 'http://apis.juhe.cn/fapig/nba/rank'
apiKey = config.NBA_SCORE_API_KEY
requestParams = {'key': apiKey}
try:
response = requests.get(apiUrl, params=requestParams)
response.raise_for_status() # 检查响应状态码是否为200
res = json.loads(response.text)
if res['error_code'] != 0:
return jsonify({'error': '请求异常', 'message': res['reason'], 'error_code': res['error_code']})
else:
return res
except requests.exceptions.RequestException as e:
print(f'请求异常: {e}')
return jsonify({'error': '请求异常', 'message': str(e)})