webconsole使用方法(fastapi框架)

news2025/1/13 7:51:28

webconsole使用方法

    • 项目背景
      • docker实现
      • linux实现
    • 安装webconsole包
    • 代码中需要改动的地方
      • 引用路由
      • 加入路由到访问路径
    • 示例接口访问路径

项目背景

需要在自己的项目中,可以实时连接linux或者docker的命令行,以此来达到webconsole或者叫web terminal的这种虚拟控制台效果。以下是本项目的具体实现:

  • 框架:fastapi
  • python版本: 3.7.5

所以如果是fastapi框架的话,基本可以做到开箱即用,只需添加几行配置代码即可使用,至于其他框架的用户,可以私信或者留言,我看到之后会提供给你一个思路,当然如果你编码能力比较强,可以把我的代码包pip install下来之后,自己看里面的代码去用别的框架重构。


docker实现

在这里插入图片描述


linux实现

在这里插入图片描述
这里的前端代码我不做过多阐述,我只说一下后端的使用。不过前端代码已经一起打包进去了,可以给你们的前端看,让他自己把我的代码引用到他的前端代码中去。

那么后端使用方法如下:

如果你的项目也是fastapi框架的,那么只需要进行如下操作

安装webconsole包

pip install webconsole -i https://pypi.org/simple
具体有什么版本需要自己看 https://pypi.org/project/webconsole/   默认是下载的最新版

webconsole项目pypi页面直达链接

代码中需要改动的地方

引用路由

from webconsole.docker.docker_console import docker_webconsole
from webconsole.linux.linux_console import linux_webconsole

在这里插入图片描述

加入路由到访问路径

app.include_router(docker_webconsole, prefix='/docker_webconsole', tags=['docker_webconsole相关,使用请谨慎'], dependencies=[Depends(oauth2_schema)])  # noqa
app.include_router(linux_webconsole, prefix='/linux_webconsole', tags=['linux_webconsole相关,使用请谨慎'], dependencies=[Depends(oauth2_schema)])  # noqa

#app.include_router(docker_webconsole, prefix='/docker_webconsole', tags=['docker_webconsole相关,使用请谨慎'], dependencies=[])  # noqa
#app.include_router(linux_webconsole, prefix='/linux_webconsole', tags=['linux_webconsole相关,使用请谨慎'], dependencies=[])  # noqa

在这里插入图片描述

PS: Linux服务需要在你的项目根目录下放置文件private_key文件,文件中是你的私钥,确保对应的公钥已经放到你要ssh的机器上了,不然登陆肯定是失败的。另外这个websocket连接我默认设置了半小时的超时时间,请各位使用的朋友悉知

示例接口访问路径

ws://127.0.0.1:60528/docker_webconsole/ws/f977748aabad?docker_address=localhost&port=2375  (这是docker的请求路径)

ws://127.0.0.1:60528/linux_webconsole/ws/linux?address=127.0.0.1&user=rbadmin_app1     (不带passwd表示默认使用你自己项目根目录下的private_key文件进行ssh登陆)

ws://127.0.0.1:60528/linux_webconsole/ws/linux?address=127.0.0.1&user=raypick&passwd=raypick   不带passwd表示默认使用密码进行ssh登陆)

这里的60528是你自己的项目启动端口,docker_webconsole和linux_webconsole是你自己定义的访问前缀,在上一步中配置的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/501775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开源智慧家居

与家居行业、服务行业等伙伴协同合作,努力创造社会价值,提升行业整体服务 水平,树立家居服务业统一售后标准,构建品质、高效、有温度的居家生活服务新生态。 为企业商家和个人客户提供家居配送、搬运、安装、维修、保养等服务。 …

在Linux系统中搭建Docker环境

搭建Docker环境 文章目录 搭建Docker环境Ubuntu版本安装DockerCentos版本安装Docker配置镜像加速 Ubuntu版本安装Docker 按照以下步骤在 Ubuntu 上安装 Docker: 卸载旧版本的 Docker(如果有): sudo apt-get remove docker docker…

【PYTHON】绘制热力图SEABORN.HEATMAP

目录 一、参数详解二、颜色参数-cmap三、个性化设置四、代码 更多python资料、源码、教程皆可点击文章下方名片获取此处跳转 一、参数详解 seaborn.heatmap() seaborn.heatmap(data, vminNone, vmaxNone, cmapNone, centerNone, robustFalse, annotNon…

又一里程碑,alibaba首推Java技术成长笔记,业内评级“钻石级”

前言 根据数据表明,阿里巴巴已经连续3年获评最受欢迎的中国互联网公司,实际上阿里巴巴无论在科技创新力还是社会创造价值这几个方面,都是具有一定代表里的。在行业内,很多互联网企业也将阿里作为自己的标杆,越来越多的…

智慧厕所引导系统的应用

智慧公厕引导系统是一种基于智能化技术的公厕管理系统,可以为如厕者提供更加便捷、舒适、安全的如厕环境和服务,同时也可以引导如厕者文明如厕,营造文明公厕的氛围。智慧公厕引导系统可以通过智能引导屏、手机小程序等方式,为如厕…

Spring Security OAuth2.0(四)-----OAuth2+JWT

传统的通过 session 来记录用户认证信息的方式我们可以理解为这是一种有状态登录,而 JWT 则代表了一种无状态登录。「无状态登录天然的具备单点登录能力」 1. 无状态登录 1.1 什么是有状态 有状态服务,即服务端需要记录每次会话的客户端信息&#xff…

asp.net+sqlserver房屋中介管理信息系统

据信息处理工作量大时容易出错;数据繁多时,容易丢失,且不易查找,出错后又不易修改。 基于以二、系统主要划分为房屋和客户两种角色。主要功能划分为:客户管理,房屋管理和交易管理三大块。其中:…

JVM系列-第5章-堆(JVisualVM)

堆 堆的核心概述 堆与进程 堆针对一个JVM进程来说是唯一的。也就是一个进程只有一个JVM实例,一个JVM实例中就有一个运行时数据区,一个运行时数据区只有一个堆和一个方法区。 但是进程包含多个线程,他们是共享同一堆空间的。 一个JVM实例…

Introduction to modern Cryptography 现代密码学原理与协议第二章笔记

M表示明文空间,K表示密钥空间,C表示所有可能的密文集合 完善保密加密的概念: 简化约定,不再特殊声明,除数为0无意义 完全保密加密的等价公式: 证明: 必要性证明略,此证明为条件概率的简单应用 完全不可区分性: 完善保密…

PCL学习八:Keypoints-关键点

参考引用 Point Cloud Library黑马机器人 | PCL-3D点云 1. 引言 关键点也称为兴趣点,它是 2D 图像或 3D 点云或曲面模型上,可以通过检测标准来获取的具有稳定性、区别性的点集。从技术上来说,关键点的数量比原始点云或图像的数据量少很多,其与…

外译笔记 | 比尔盖茨:AI与智能手机和互联网一样具有革命性 | 京东云技术团队

3月21号,微软创始人比尔盖茨,在盖茨笔记中,发表最新AI文章《人工智能时代已经开始——人工智能与智能手机、互联网一样具有革命性》,文章中表示:自1980年首次看到图形用户界面(graphical user interface&am…

使用awvs对网站进行扫描

前言:由于领导要求生成好看的漏洞扫描报告来发送给甲方,因此放弃了xray xray的简单使用 一、首先下载并安装相应的工具 访问此网址观看相应操作系统视频进行安装、有安装包更新记得及时更新 https://www.iculture.cc/software/pig35126 二、开始扫描 …

软考A计划-重点考点-专题一(计算机系统知识)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

【读书笔记】次第花开——安抚内心平静的宝藏书

种草许久的书,终于在合适的时间点读上了。还是从樊登老师那里了解到的,我本身是对佛法没有太深的理解和概念,但总感觉在这浮躁的社会需要一些理念支撑让人能沉静下来的。信仰对我还很陌生,但次第花开读起来真的让人舒服&#xff0…

3.Docker实用技术

Docker实用篇 0.学习目标 1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署…

看电商数据,用api接口数据

看渠道,看行业,看竞品很方便,不用拉一堆品牌比较,我看整体的时候很直接,谁最近数据好销量高一目了然,我也能做出反应和调整。 深圳电商运营中心 看历史数据的功能,极大满足了我不断总结复盘的习…

洗稿伪原创工具-洗稿生成器

chatgpt快速洗稿一篇文章 做自媒体创作的人都知道,文案创作是一件十分耗时间和精力的事情,而且要做好一篇文章,还需要考虑排版、语法和语气等问题。为了让自媒体写作更简单、更快速,我们推出了一款名为ChatGPT的快速洗稿软件&…

Java ---多线程

(一)目录 多线程介绍 线程的创建 线程的使用 线程的优先级 守护线程 线程同步 线程并发协作 (二)多线程介绍 1.多线程的基本概念 程序 “程序(Program)”是一个静态的概念,一般对应于操作系统中的一个可执行文…

openpnp - Smoothieware project debug

文章目录 openpnp - Smoothieware project debug概述笔记记录一下工程中, 和调试相关的资料备注END openpnp - Smoothieware project debug 概述 迁出了Smoothieware工程, 想单步调试学习一下工程. 工程可以编译下载, 但是没有对单步调试方法做说明. 研究了几天, 大概知道咋回…

Spring/SpringBoot常用注解总结

为什么要写这篇文章? 最近看到网上有一篇关于 SpringBoot 常用注解的文章被转载的比较多,我看了文章内容之后属实觉得质量有点低,并且有点会误导没有太多实际使用经验的人(这些人又占据了大多数)。所以,自…