上一篇已经讲了如何让NoVNC代理跑起来 , 这章我们来看看如何将它集成到我们的django项目中来
NoVNC的使用之一: 让我们把NoVNC代理跑起来
1. 设置静态文件 (包括NoVNC需要用到的 css , js , image , template 文件)
写道
这里我们假设 /media/ 目录是你的静态文件目录 , 这个目录下有 css , js , images等目录....
1. 我们创建一个 vnc的目录 , mkdir vnc
2. cp -R ~/work/noVNC/images -> media/vnc
cp -R ~/work/noVNC/include -> media/vnc
3. cp ~/work/noVNC/vnc_auto.html -> templates/vnc_auto.html
let us edit this :
// host = WebUtil.getQueryVar('host', window.location.hostname);
host = '{{host}}'
// port = WebUtil.getQueryVar('port', window.location.port);
port = {{port}}
// path = WebUtil.getQueryVar('path', 'websockify');
path = WebUtil.getQueryVar('path', 'websockify/?token={{token}}');
// 'view_only': WebUtil.getQueryVar('view_only', false),
'view_only': WebUtil.getQueryVar('view_only', {{view_only}}),
2. 将noVNC代理程序移植到项目中..
写道
这里我将VNC的关键代码放到项目的 utils目录下
我们只需要原代码中的 noVNC/utils 即可
cp -R ~/work/noVNC/utils ../../utils/vnc
我们只需要原代码中的 noVNC/utils 即可
cp -R ~/work/noVNC/utils ../../utils/vnc
3. 添加配置文件夹
写道
紧接着上面 , 在 ../../utils/vnc 下 mkdir vnc_tokens 目录
cd vnc_tokens
vim vnc-1.ini and edit is
abcdefg: 10.10.10.202:5900
×× 如果有多个被控端,就顺着往下写即可,不用一个被控端一个 ini 文件
4. 如果在项目中启动 novnc 代理服务
写道
1. 线程 (threading) , 不行, 这个服务只能在主线程中跑
2. 子进程 (subprocess), 不行, 主进程会被阻塞
3. 多进程 (multiprocessing) , OK
#coding=utf-8 import os from multiprocessing import Process from django.conf import settings def worker(): ''' 多进程启动VNC服务 ''' dir_path = os.path.dirname(__file__) websockify_path = os.path.join(dir_path, 'vnc', 'utils', 'websockify') web_path = os.path.join(dir_path, 'vnc') target_path = os.path.join(dir_path, 'vnc', 'vnc_tokens') cmd = u'python %s --web=%s --target-config=%s %s' %(websockify_path, web_path, target_path, settings.VNC_PROXY_PORT) os.system(cmd) def start_websockify(): ''' 启动vnc代理服务 ./utils/websockify --web=. --target-config=vnc_tokens 6080 {'target_cfg': '/home/xiaofei/work/noVNC/vnc_tokens', 'listen_port': 6080} ''' print u'start vnc proxy..' t = Process(target=worker,args=()) t.start() print u'vnc proxy started..'
5. 写一个URL响应函数, 就可以用类似下面的方式 进行 访问 :
def run_vnc(request): ''' 调用VNC代理进行远程控制 ''' template = loader.get_template('vnc_auto.html') token = request.GET.get('token', '') # 用来判断不同的访问机器 view_only = request.GET.get('view_only', 'false') # false可以控制 or true只能查看 # 代理服务器 IP及端口 , 这个一般都用校服务器局域网IP (127.0.0.1, 6080是默认端口) host = '127.0.0.1' port = settings.VNC_PROXY_PORT context = Context({'token':token, 'host':host, 'port': port, 'view_only':view_only}) return HttpResponse(template.render(context))
6. http://localhost:8000/system/maintenance/run-vnc/?token=abcdefg 即可控制 10.10.10.202机器 (前提是202开启了 vcn server)
相关推荐
noVnc Django PoC Websockify的Django身份验证插件的PoC。 用法: 打开两个端子。 在这两个目录中,您都需要进入“ authenticated_websocket_django”目录。 在一个终端中运行Web服务器: python ./manage.py ...
首先,我们先来认识Django: Django是一个高级的Python Web框架,可以快速开发安全和可维护的网站。由经验丰富的开发者构建,Django负责处理网站开发中麻烦的部分,可以专注于编写应用程序,而无需重新开发。 接...
django:Django框架详解,Django的优缺点.zip django:Django框架详解,Django的优缺点.zip django:Django框架详解,Django的优缺点.zip django:Django框架详解,Django的优缺点.zip django:Django框架详解,...
使用python的django开发的一个商城项目源码 使用python的django开发的一个商城项目源码 使用python的django开发的一个商城项目源码 使用python的django开发的一个商城项目源码 使用python的django...
14. **部署**:学习如何将Django项目部署到服务器,如使用Nginx和Gunicorn,或者使用Docker容器化部署。 15. **错误调试与日志记录**:学习如何处理和调试Django中的错误,以及如何配置日志系统以跟踪应用程序的...
django项目django项目django+vue项目.zipdjango项目django+vue项目.zipdjango项目django+vue项目.zipdjango项目django+vue项目.zipdjango项目django+vue项目.zipdjango项目django+vue项目.zipdjango项目django+vue...
项目标题:基于Python Django的实战项目源码解析 技术栈:本项目主要采用Python语言开发,辅以HTML和CSS进行前端设计。 文件概览:总计174个文件,包括以下类型: - pyc文件(已编译的Python文件):50个 - py文件...
**Django项目与dwebsocket结合使用案例** 在Web开发中,实时通信的需求日益增长,WebSocket协议因其双向通信、低延迟的特性,成为了实现这一需求的重要工具。本案例将详细介绍如何在Django项目中集成dwebsocket库,...
【Django项目开发详解】 本项目是一份关于Django商城开发的详细资料,适用于未来的查阅。...通过这样的实践,开发者可以深入理解Django框架的使用,以及如何将多种技术整合到一个完整的电商项目中。
### 详解 Django + Django-Celery + Celery 的整合实战 #### 一、Celery简介与功能概述 ...以上内容涵盖了 Django 项目与 Celery 整合的基本流程和实践操作,希望能够帮助读者理解和掌握如何在实际项目中应用 Celery。
- **新建项目**:`django-admin.py startproject project-name` 或 `django-admin startproject project-name` - **新建APP**:`python manage.py startapp app-name` 或 `django-admin.py startapp app-name` - ...
【Django网上书店项目】是一个基于Django框架开发的在线图书销售平台的示例项目,旨在帮助学习者理解和掌握Django在实际应用中的工作流程。这个项目包括了前端界面和后端逻辑,同时预置了数据库,使得用户可以直接...
注:本项目适用于Django初学者,作为练习学习使用。该项目是传智播客Python教程中的生鲜电商的项目,并在其中的一些地方做了简化。 主要技术栈 Python + Django + MySQL + Redis + Celery 注:后台管理系统直接...
Python基于Django的实战项目源码——美多商城 Python基于Django的实战项目源码——美多商城 Python基于Django的实战项目源码——美多商城 Python基于Django的实战项目源码——美多商城 Python基于Django的...
在IT行业中,构建高效的数据采集系统常常涉及到多个框架的整合使用。本篇文章将详细探讨如何将两个强大的Python库——Django和Scrapy结合,以实现通过Django的Web界面控制Scrapy爬虫的运行,并将爬取的数据存入...
Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目...
安装Django: 首先,需要在服务器上安装Python环境,因为Django是用Python编写的。一旦Python安装完成,就可以通过Python的包管理工具pip安装Django。安装Django时,可以通过命令行工具使用如下命令: ``` pip ...
【Python Django Demo项目】是一个适合初学者入门的实践项目,旨在帮助学习者了解和掌握Django框架的基础知识和核心概念。Django是一个用Python编写的高级Web开发框架,它遵循模型-视图-控制器(MVC)设计模式,强调...
django:3.0 依赖包: pillow,django-simpleui,django_summernote 测试用户(数据库已存在): root 123456 超级管理员可自己创建 author:Ericam_ 项目版本: python:3.7 django:3.0 依赖包: pillow,...