Django、Echarts异步请求、动态更新

news/2024/7/2 23:34:29

前端页面

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>echarts示例</title>		
		<script src="jquery.min.js"></script>
		<script type = "text/javascript" src = "echarts.min.js" ></script>		
	</head>
	
	<body>				
		<div id="main" style="width: 600px;height:400px;"></div>
		<script type="text/javascript">
			var myChart = echarts.init(document.getElementById('main'));
			
			// 初始化图表选项
			myChart.setOption({
			    title: {
			        text: 'ECharts 数据异步加载示例'
			    },
			    tooltip: {},
			    legend: {
			        data: ['销量']
			    },
			    xAxis: {
			        data: []
			    },
			    yAxis: {},
			    series: [{
			        name: '销量',
			        type: 'bar',
			        data: []
			    }]
			});
			
			function fetchData() {
			    $.ajax({
			        url: 'api/echarts/demo/', // 改为你的数据接口地址
			        dataType: 'json',
			        success: function(data) {
			            // 假设返回的数据格式如下:
			            // {
			            //     categories: ["衬衫", "羊毛衫", ...],
			            //     values: [5, 20, ...]
			            // }
			            myChart.setOption({
			                xAxis: {
			                    data: data.categories
			                },
			                series: [{
			                    name: '销量',
			                    data: data.values
			                }]
			            });
			        },
			        error: function(xhr, type, errorThrown) {
			            // 处理错误
			        }
			    });
			}
			
			// 设置定时器,定期更新数据
			setInterval(function () {
			    fetchData(); // 调用获取数据的函数
			}, 5000); // 5000毫秒即5秒钟更新一次数据
		</script>
	</body>
</html>

跨域问题,依然采用nginx代理。

后端代码

from django.http import HttpResponse
import json

def EchartsDemo(request):
    data = {}
    categories = ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
    values = [50, 20, 36, 10, 10, 20]
    data['categories'] = categories
    data['values'] = values
    print("echerts=",data)
    return HttpResponse(json.dumps(data), content_type="application/json")

展示效果:


http://lihuaxi.xjx100.cn/news/1891096.html

相关文章

后端对数据库查询的时间格式化

方式一&#xff1a; 在属性上加入注解&#xff0c;对日期进行格式化&#xff0c;如&#xff1a; JsonFormat(pattern "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime;方式二&#xff1a; 在WebMvcConfiguration 中扩展Spring MVC的消息转换器&#xf…

k8s-8 ingress

ExternalName类型 当集群外的资源往集群内迁移时&#xff0c;地址并不稳定&#xff0c;访问域名或者访问方式等会产生变化&#xff1b; 使用svc的方式来做可以保证不会改变&#xff1a;内部直接访问svc&#xff1b;外部会在dns上加上解析&#xff0c;以确保访问到外部地址。 …

Vue指令之v-on

v-on指令用于注册事件&#xff0c;作用是添加监听与提供事件触发后对应的处理函数。 v-on有两种语法&#xff0c;在提供处理函数的时候既可以直接使用内联语句&#xff0c;也可以提供函数的名字。 第一种语法是直接提供内联语句&#xff0c;如下 v-on:事件名 "内联语句…

USB设备共享服务USB Redirector如何安装并结合内网穿透实现远程共享和访问USB设备

文章目录 前言1. 安装下载软件1.1 内网安装使用USB Redirector1.2 下载安装cpolar内网穿透 2. 完成USB Redirector服务端和客户端映射连接3. 设置固定的公网地址 前言 USB Redirector是一款方便易用的USB设备共享服务应用程序&#xff0c;它提供了共享和访问本地或互联网上的U…

2023 年全国网络安全行业职业技能大赛---数据操作安全管理员比赛样题

2023 年全国网络安全行业职业技能大赛--数据操作安全管理员比赛样题 2023 年全国网络安全行业职业技能大赛--数据操作安全管理员比赛样题项目介绍&#xff1a;选手指南&#xff1a;任务目标&#xff1a;第一部分:数据安全防护(30%)第二部分:数据安全管理(30%)第三部分:数据安全…

04 python函数

4.1 函数的快速开发体验 """ 演示&#xff0c;快速体验函数的开发和使用 """#需求&#xff0c;统计字符串的长度&#xff0c;不使用内置函数len()str1 itheima str2 itcast str3 python#定义一个计数的变量 count 0 for i in str1:count 1…

如何使用 Redis 快速实现分布式锁?

本文我们来讨论如何使用 Redis 快速实现分布式锁。 分布式锁有很多种解决方案&#xff0c;前面简单介绍过&#xff0c;Redis 可以通过 set key 方式来实现分布式锁&#xff0c;但实际情况要更加复杂&#xff0c;比如如何确保临界资源的串行执行&#xff0c;如何及时释放&#…

Arrary.asList(arr)

Arrary.asList(arr) List listArrary.asList(arr)&#xff1a;把一个数组转换成 list &#xff0c;本质还是数组&#xff0c;就是用 list 给 arr 包了一层 不能用 add&#xff0c;remove 这些 list 的方法 基本类型的情况下调用 size() 不准确 更改数组 s &#xff0c;列表 …