python Django Vue3 使用websockert 实现Echarts实时更新

django+vue3实现websocket聊天室(群聊) websocket 通信 channels配置 chat_ui配置 django+vue3实现 websocket聊天室 阅读详情

前端vue

<template>
    <div>
        
        

        
       
        <div id="main">

        </div>


        
        
    </div>
</template>

<script>
import axios from 'axios'
import * as echarts from 'echarts';
import {reactive} from 'vue'
    export default {
        setup() {
            let data1 = reactive({'data':[]})
            let data2 = reactive({'data':[]})

            let initEarcharts=()=>{
                var chartDom = document.getElementById('main');
                var myChart = echarts.init(chartDom);
                var option;

                option = {
                xAxis: {
                    type: 'category',
                    data: data1.data
                },
                yAxis: {
                    type: 'value'
                },
                series: [
                    {
                    data: data2.data,
                    type: 'line'
                    }
                ]
                };

                option && myChart.setOption(option);
                
            }



            

            //初始化websocket
            const initWebsocket=()=>{
                let socket = new WebSocket('ws://127.0.0.1:8000/web_conn/')
                //建立
                socket.onopen=function(){
                    console.log('建立连接')
                }
                //接收消息
                socket.onmessage=function(msg){
                    let data = JSON.parse(msg.data)
                    console.log(msg.data)
                    data1.data = data[0]
                    data2.data = data[1]
                    // 调用echarts
                    initEarcharts()
                    
                    
                }
                //关闭
                socket.close=function(e){
                    console.log(e)
                    console.log('close')
                }
            }


            return{
                data1,
                data2,
                initEarcharts,
                initWebsocket,
            }
    },


        data() {
            return {
                
            }
        },
        methods: {
        

            // 调用定时任务
            times(){
                axios.get("http://localhost:8000/times1/?id="+localStorage.getItem('userid'))
            },



       
        },
        mounted() {
            
            this.times()
            this.initWebsocket()
            
            
            
        },
    }
</script>

<style scoped>
#main{
    width: 1000px;
    height: 400px;
}
</style>

后端django

from dwebsocket.decorators import accept_websocket
websocketlist=[]
# 和前端进行连接
@accept_websocket
def web_conn(request):
    if request.is_websocket:
        websocketlist.append(request.websocket)

    for message in request.websocket:
        break

import datetime


def send1(id):
    # 逻辑代码
    etime = datetime.datetime.strftime(datetime.datetime.now(),'Y-%m-%d')
    stime = datetime.datetime.strftime((datetime.datetime.now() - datetime.timedelta(days=7)), '%Y-%m-%d')
    sql = "select from_unixtime(ctime,'%%Y-%%m-%%d') as addtime,sum(integral) as integral from user_integral where userid=%d and type=1 and from_unixtime(ctime,'%%Y-%%m-%%d') between '%s' and '%s' group by from_unixtime(ctime,'%%Y-%%m-%%d') " % (
    int(id), stime, etime)
    res = db2.find_all(sql)

    stimelist = []
    for i in range(7, 0, -1):
        stimelist.append(datetime.datetime.strftime((datetime.datetime.now() - datetime.timedelta(days=i)), '%Y-%m-%d'))
    list = []
    print(stimelist)
    list1 = []
    list2 = []
    for i in stimelist:
        flag = False
        list2.append(str(i))
        for j in res:
            if i == j['addtime']:
                flag = True
                list1.append(int(j['integral']))
                continue
        if flag == False:
            list2.append(i)
            list1.append(0)
    list.append(stimelist)
    list.append(list1)

    # print(list)

    if websocketlist:
        for i in websocketlist:
            b1 = json.dumps(list, ensure_ascii=False).encode('utf-8')
            i.send(b1)

    return HttpResponse('ok')


from apscheduler.schedulers.background import BackgroundScheduler


def times1(request):
    id = request.GET.get('id')
    scheduler = BackgroundScheduler()
    # 添加调度任务
    # 调度方法为 timedTask,触发器选择 interval(间隔性),间隔时长为 2 秒
    scheduler.add_job(send1, 'interval', seconds=2,args=[id])
    # 启动调度任务
    scheduler.start()
    return HttpResponse('ok')

Django+Vue实现dwebsocket通信 Django+Vue实现dwebsocket通信 文章目录Django+Vue实现dwebsocket通信djangoVue django Python环境下 pip install dwebsocket 配置django的setting.py文件 # 看到其他博客里有这一步,但是添加中间件后,django报错,故注释掉 # 只添加了WEBSOCKET_ACCEPT_ALL = True MIDDLEWARE = [ ... # 'dwebsocket.middleware.WebSocketMidd 阅读详情

相关推荐

Django+Vue实现WebSocket连接的示例代码

主要介绍了Django+Vue实现WebSocket连接的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Python+Django+Vue3全栈开发商城项目

一个Django+Vue3前后端分离的全栈商城系统项目,旨在帮助广大初学者将所学知识快速融合,实现快速开发,专为大学生或者找工作为目的者而设,将零散的知识点融合到项目中,并且收获真实项目的设计思维和开发经验。 本项目前端使用课程《Vue3.0正式版核心技术》开发的商城前端项目,后端使用Python的快速开发框架Django框架。 希望本课程能给广大学者带来技能和项目上的提升。 项目截图:

从CTFShow靶场实战,聊聊Node.js原型链污染漏洞的几种利用姿势(附详细复现步骤)

本文深入剖析Node.js原型链污染漏洞的原理与实战利用,通过复现CTFShow靶场题目(web338-web341),详细演示五种高级利用技巧,包括基础污染、多级污染、模板引擎RCE等,并提供防御方案与最佳实践,帮助开发者提升Web应用安全性。

weixin_30791095的博客 449

【无标题】从0到1 搭建一个vue3+Django项目

从0到1搭建一个vue3+Django项目

weixin_45286211的博客 3650

CloudCompare实战:5分钟搞定点云数据预处理(含常见格式转换技巧)

本文提供了一套基于CloudCompare的5分钟点云数据预处理实战指南。文章详细讲解了如何利用这款开源工具,快速完成点云数据的格式转换(如LAS转PLY)、统计离群值降噪、体素网格下采样以及交互式裁剪等核心操作,帮助用户高效清理和规整杂乱数据,为后续分析建模奠定基础。

weixin_29207533的博客 479

免费升级哨兵2号分辨率!用SRCNN深度学习模型实现10米→2.5米超分重建

本文详细介绍了如何利用SRCNN深度学习模型,将哨兵2号遥感影像的分辨率从10米免费提升至2.5米。文章提供了从数据准备、模型训练到部署应用的全流程实战指南,旨在通过AI应用技术,为农业监测、城市规划等领域提供更高精度的影像数据支持。

coffee的博客 524

Django学习——Django+vue+websocket+bs64 实现图片推送

一、Django+websocket + channel 由于我的Django版本为3.2.5,不支持websocket,经查询大量博文之后决定使用channel来实现websocket。websocket和channel的安装配置与使用,请参考我另一篇博文 二、Python Base64模块的使用 2.1 什么是Base64 Base64是一种用64个字符来表示任意二进制数据的方法。常用于在URL、Cookie、网页中传输少量二进制数据。 图片转换为bs64编码具体操作 import base64 # 引

qq_52193816的博客 1365

保姆级教程:手把手教你用记事本修改DNF私服PVF,打造毕业级自定义装备

本文提供了一份详细的DNF私服PVF文件修改教程,教你如何使用记事本轻松打造毕业级自定义装备。从PVF文件结构解析到基础属性修改,再到高级特效设置,手把手教你实现装备属性的全方位定制,无需编程基础即可完成。

weixin_42525385的博客 1210

vue+django实现websocket连接

一、概述 在项目中,需要使用websocket,来展示一些实时信息。 这里使用django 3.1.5 二、django项目 安装模块 pip3 install django-cors-headers channels 新建项目websocket_demo 修改websocket_demo/asgi.py import os from channels.auth import A...

shykevin的博客 1709

Hyper-V显卡直通实战:手把手解决Windows 11虚拟机错误码43(附完整参数配置)

本文详细解析了在Windows 11 Hyper-V虚拟机中配置显卡直通时遭遇错误码43的根源,并提供了从环境检查、核心PowerShell命令(如Set-VMGpuPartitionAdapter)配置到虚拟机内驱动替换的完整实战解决方案,帮助用户彻底解决显卡驱动无法加载的问题。

weixin_29238147的博客 902

告别信号干扰!用Altium Designer 19搞定4层/6层PCB叠层设计的保姆级流程

本文详细介绍了如何使用Altium Designer 19进行4层/6层PCB叠层设计,解决信号干扰问题。通过实际案例和系统方法论,涵盖高速数字电路、混合信号系统等典型场景的设计优化,帮助硬件工程师和学生掌握电磁兼容(EMC)与信号完整性(SI)的核心技术。

weixin_27076351的博客 207

记录-vue3使用echarts实时更新

setOption(option,true)=>解决报错:Cannot read properties of undefined (reading 'type')notMerge—— 可选,是否不跟之前设置的 option 进行合并,默认为 false,即合并。踩坑一:vue3 echarts实例不能设置响应式(用ref包裹等),否则tooltip会不显示。每天进步一点点,慢慢就能遇见更好的自己!踩坑二:解决数据变化后折线图未实时变化。

qq_45346362的博客 3003

大模型新闻摘要生成质量评估工具

大模型新闻摘要生成质量评估工具 关键词:大模型、新闻摘要、质量评估、自然语言处理、算法 摘要:本文将探讨大模型新闻摘要生成质量评估工具的设计与应用。首先介绍大模型新闻摘要生成的背景和问题,然后深入分析质量评估的难点和重要性,接着介绍大模型的

AI天才研究院 828

django+vue实现websocket即使通讯

Websocket 即时通讯 1.需求 即时通讯工具一定要保障的是即时性 基于现在的通讯协议HTTP要如何保障即时性呢? 2.短连接型 基于HTTP短连接如何保障数据的即时性 HTTP的特性就是无状态的短连接,即一次请求一次响应断开连接失忆,这样服务端就无法主动的去寻找客户端给客户端主动推送消息 1.轮询 即:客户端不断向服务器发起请求索取消息 优点:基本保障消息即时性 缺点:大量的请求导致客户端...

qq_45632139的博客 1214

Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南

Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南

丨汀、的博客 2651

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

django和websoket教程,前端vue3 cli实时通讯

WebSocket 是一种网络通信协议,它提供了全双工通信通道,允许服务器和客户端之间进行实时、双向的数据传输。这种通信方式相比于传统的 HTTP 请求/响应模式,能够更有效地处理实时数据,因为它不需要频繁地建立和关闭连接。WebSocket 在以下场景中非常有用:- 实时消息和聊天应用- 实时数据推送,如股票价格更新、新闻更新等- 多人在线游戏在 Django 中,我们可以使用 Channels 库来实现 WebSocket 功能。

a820206256的博客 994

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

django、vue如何实现websock通信,如何实现多人群聊

django、vue如何实现websock通信,如何实现多人群聊

m0_61453038的博客 955

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

vue项目中使用websocket对数据做实时更新的处理

【代码】vue项目中使用websocket对数据做实时更新的处理。

前端-尔嵘 6370

Django3+Vue3进行前后端开发环境搭建

背景 本文基于具备一定python后端基础,想通过基于Django,结合时下热门的前端框架Vue,来了解web前后端开发的角度作总结描述。 因此,本文假定已经安装好了python环境、Django模块。 环境需求 python开发环境 Django模块 Node.js Vue-Cli 环境准备 Node.js node.js安装参考:https://www.runoob.com/nodejs/nodejs-install-setup.html Vue-Cli npm安装模块速度慢,这里先安装cnpm n

lc_buzhidao的博客 8283

【web系列十】Vue3+Django+MySQL搭建前后端框架

这篇文章主要介绍前端、后端和服务器间的通信,如果有对这三个部分还不了解的或者不知道怎么搭建工程的可以去看博主的这三篇文章,希望能对你有帮助。

Nicholson的博客 9657

vue+django——webshell的实现,xterm.js实现webshell

Webshell “web”的含义是显然需要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操作权限。webshell常常被称为通过网站端口对网站服务器的某种程度上操作的权限。 一方面,webshell被站长常常用于网站管理、服务器管理等等,根据FSO权限的不同,作用有在线编辑网页脚本、上传下载文件、查看数据库、执行任意程序命令等。 另一方面,被入侵者利用,从而达到控制网站服务器的目的。这些网页脚本常称为WEB脚本木马,比较流行的asp或php木马,也有基于.NET的脚本木马与JSP脚

hangGe0111的博客 3006

django-vue基于websocket人工客服系统打造

websocket已经讲过了有兴趣的可以戳这里 今天我们要做的就是基于websocket实时人工客服,先来了解一下机制 WebSocket 机制 WebSocket 是 HTML5 一种新的协议。它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯,它建立在 TCP 之上,同 HTTP 一样通过 TCP 来传输数据,但是它和 HTTP 最大不同是: WebSocket 是一种双向通信协议,在建立连接后,WebSocket 服务器和 Browser/Client Agent 都能主动

weixin_45954124的博客 1635

vue前端利用websocket添加真实进度条

可在mounted中调用this.initWebSocket()最后在调用保存接口时传递与后端定义好的参数即可。进度条样式(这里用的是element里的)progressVal默认0。

iseyre的博客 1054

python websocket django vue_WebSocket介绍与WebSocket在Django中的实现

关于WebSocket:WebSocket 协议在2008年诞生,2011年成为国际标准。现在所有浏览器都已经支持了。WebSocket 的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。1.webSocket是一种在单个TCP连接上进行全双工通信的协议2.客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。3.浏览...

weixin_39978257的博客 492

vue js 调用python脚本,并给python脚本传数据

运行 JavaScript 代码后,您将得到 Python 脚本计算的结果,并在控制台中打印出来。设置为您需要传递给 Python 脚本的参数。替换为实际的 Python 脚本路径,并将。2 js JavaScript 中使用。1 python 保存上述代码为。

tenc1239的博客 3796

django4.0+vue3对接

使用corsheaders包跨域 设置参考:https://blog.youkuaiyun.com/m0_62520968/article/details/124376513?spm=1001.2014.3001.5501https://blog.youkuaiyun.com/m0_62520968/article/details/124376513?spm=1001.2014.3001.5501 Django后端,rest_framework+token登录验证,使用默认用户表 建立模型models.py from d

m0_62520968的博客 1430
上一篇: python flask实现三方微博登录
下一篇: python flask文件上传封装
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值