当前位置: 首页 > news >正文

项目文档分享

Hello , 我是小恒。提前祝福妈妈母亲节快乐 。
本文写一篇初成的项目文档 (不是README.md哈),仅供参考

项目名称

脚本存储网页

项目简介

本项目旨在创建一个网页,用于存储和展示各种命令,用户可以通过粘贴复制命令到服务器来完成nginx、MySQL等软件的安装任务,免于使用运维面板。项目还包含各种异常处理机制,确保用户在执行命令时能够避免潜在的问题。

发起时间

2024/5/7

技术选型

后端 python3.11fastapi
前端 Vue,Vuex

接口设计

  1. 获取脚本列表
    请求方法:GET

请求路径:/v1/scripts
请求参数:无
响应示例:

{
"data": [
{
"id": 1,
"name": "安装nginx",
"command": "sudo apt-get install nginx"
},
{
"id": 2,
"name": "安装MySQL",
"command": "sudo apt-get install mysql-server"
}
]
}
  1. 创建脚本
    请求方法:POST

请求路径:/v1/scripts

请求参数:

参数名类型必填描述
namestring脚本名称
commandstring脚本命令

请求示例:

{
"name": "安装nginx",
"command": "sudo apt-get install nginx"
}
响应示例:{
"data": {
"id": 1,
"name": "安装nginx",
"command": "sudo apt-get install nginx"
}
}
  1. 更新脚本
    请求方法:PUT

请求路径:/v1/scripts/{id}

请求参数:

参数名类型必填描述
idint脚本ID
namestring脚本名称
commandstring脚本命令
请求示例:
{
"name": "更新nginx",
"command": "sudo apt-get update && sudo apt-get install nginx"
}
响应示例:{
"data": {
"id": 1,
"name": "更新nginx",
"command": "sudo apt-get update && sudo apt-get install nginx"
}
}
  1. 删除脚本
    请求方法:DELETE

请求路径:/v1/scripts/{id}

请求参数:

参数名类型必填描述
idint脚本ID
响应示例:
{
"data": {
"id": 1,
"name": "更新nginx",
"command": "sudo apt-get update && sudo apt-get install nginx"
}
}
  1. 获取脚本详情
    请求方法:GET

请求路径:/v1/scripts/{id}

请求参数:

参数名类型必填描述
idint脚本ID
响应示例:
{
"data": {
"id": 1,
"name": "更新nginx",
"command": "sudo apt-get update && sudo apt-get install nginx"
}
}
  1. 搜索脚本
    请求方法:GET

请求路径:/v1/scripts/search?q={query}

请求参数:

参数名类型必填描述
querystring搜索关键词
响应示例:
{
"data": [
{
"id": 1,
"name": "安装nginx",
"command": "sudo apt-get install nginx"
},
{
"id": 2,
"name": "安装MySQL",
"command": "sudo apt-get install mysql-server"
}
]
}

前端代码

前端代码主要负责展示用户界面和与后端进行通信
组件(Components):Vue.js组件用于构建用户界面。组件可以是简单的HTML元素,也可以是复杂的用户界面部分。在本项目中有以下组件:
ScriptList.vue:用于显示脚本列表。
ScriptForm.vue:用于创建和更新脚本。
ScriptDetail.vue:用于显示脚本详情。
路由(Routes):Vue Router用于管理应用程序的路由。在本项目中,我们可能会有以下路由:
/scripts:显示脚本列表。
/scripts/create:创建新脚本。
/scripts/:id:显示脚本详情。
/scripts/:id/edit:更新脚本。
状态管理(State Management):Vuex用于管理应用程序的状态。在本项目中,我们可能会有一个Vuex store来存储脚本列表、当前选中的脚本等状态。
API请求(API Requests):使用axios或fetch等HTTP客户端与后端进行通信。在本项目中,我们需要实现以下API请求:
GET /v1/scripts:获取脚本列表。
POST /v1/scripts:创建新脚本。
PUT /v1/scripts/:id:更新脚本。
DELETE /v1/scripts/:id:删除脚本。
GET /v1/scripts/:id:获取脚本详情。
GET /v1/scripts/search?q={query}:搜索脚本。

后端代码

后端代码主要负责处理API请求和与数据库进行通信。以下是后端代码的主要部分:

路由(Routes):FastAPI使用路由来处理API请求。在本项目中,我们需要实现以下路由:
GET /v1/scripts:获取脚本列表。
POST /v1/scripts:创建新脚本。
PUT /v1/scripts/{id}:更新脚本。
DELETE /v1/scripts/{id}:删除脚本。
GET /v1/scripts/{id}:获取脚本详情。
GET /v1/scripts/search?q={query}:搜索脚本。
数据模型(Data Models):使用Pydantic或SQLAlchemy等库定义数据模型。在本项目中,我们需要定义一个Script模型,包含id、name和command等字段。
数据库(Database):使用PostgreSQL数据库存储脚本数据。
异常处理(Error Handling):在后端代码中,我们需要处理各种异常,例如数据库错误、验证错误等。我们可以使用FastAPI的异常处理机制来实现这一点。
中间件(Middleware):FastAPI支持中间件,可以用于实现诸如身份验证、日志记录等功能。在项目中使用中间件来处理跨域资源共享(CORS)问题

from fastapi.middleware.cors import CORSMiddleware# 添加CORS中间件
app.add_middleware(CORSMiddleware,allow_origins=["*"],allow_credentials=True,allow_methods=["*"],allow_headers=["*"],
)

相关文章:

项目文档分享

Hello , 我是小恒。提前祝福妈妈母亲节快乐 。 本文写一篇初成的项目文档 (不是README.md哈),仅供参考 项目名称 脚本存储网页 项目简介 本项目旨在创建一个网页,用于存储和展示各种命令,用户可以通过粘贴复制命令到…...

【深耕 Python】Quantum Computing 量子计算机(5)量子物理概念(二)

写在前面 往期量子计算机博客: 【深耕 Python】Quantum Computing 量子计算机(1)图像绘制基础 【深耕 Python】Quantum Computing 量子计算机(2)绘制电子运动平面波 【深耕 Python】Quantum Computing 量子计算机&…...

手写Spring5【笔记】

Spring5【笔记】 前言前言推荐Spring5【笔记】1介绍2手写 最后 前言 这是陈旧已久的草稿2022-12-01 23:32:59 这个是刷B站的时候,看到一个手写Spring的课程。 最后我自己好像运行不了,就没写。 现在2024-5-12 22:22:46,发布到[笔记]专栏中…...

2024中国(重庆)机器人展览会8月举办

2024中国(重庆)机器人展览会8月举办 邀请函 主办单位: 中国航空学会 重庆市南岸区人民政府 招商执行单位: 重庆港华展览有限公司 2024中国重庆机器人展会将汇聚机器人全产业链知名企业,世界科技领先的生产制造企业与来自多个国家和地区…...

Apache 开源项目文档中心 (英文 + 中文)

进度:持续更新中。。。 Apache Ambari 2.7.5 Apache Ambari Installation 2.7.5.0 (latest)Apache Ambari Installation 2.7.5.0 中文版 (latest) Apache DolphinScheduler Apache DolphinScheduler 1.2.0 中文版Apache DolphinScheduler 1.2.1 中文版...

蓝桥杯 算法提高 ADV-1164 和谐宿舍 python AC

贪心&#xff0c;二分 同类型题&#xff1a;蓝桥杯 算法提高 ADV-1175 打包 def judge(x):wood 0max_val 0ans_len 0for i in ll:if i > x:return Falseelif max(max_val, i) * (ans_len 1) < x:max_val max(max_val, i)ans_len 1else:wood 1max_val ians_len …...

Dragonfly 拓扑的路由算法

Dragonfly 拓扑的路由算法 1. Dragonfly 上的路由 (1)最小路由(2)非最小路由 2. 评估3. 存在问题 (1)吞吐量限制(2)较高的中间延迟 references Dragonfly 拓扑的路由算法 John Kim, William J. Dally 等人在 2008 年的 ISCA 中提出技术驱动、高度可扩展的 Dragonfly 拓扑。而…...

android基础-服务

同样使用intent来传递服务 oncreate是服务第一次启动调用&#xff0c;onStartCommand是服务每次启动的时候调用&#xff0c;也就是说服务只要启动后就不会调用oncreate方法了。可以在myservice中的任何位置调用stopself方法让服务停止下来。 服务生命周期 前台服务类似于通知会…...

mysql 事物

MySQL中的事务&#xff08;Transaction&#xff09;是一个确保数据完整性和一致性的重要概念。它将一组SQL操作捆绑在一起&#xff0c;当作一个单一的工作单元来执行。事务具备以下四个关键特性&#xff0c;即ACID特性&#xff1a; 原子性&#xff08;Atomicity&#xff09;&am…...

Unity Shader中获取像素点深度信息

1.顶点着色器中对深度进行计算 v2f vert(appdata v) {v2f o;o.pos UnityObjectToClipPos(v.vertex);o.uv TRANSFORM_TEX(v.uv, _MainTex);o.depth (o.pos.z / o.pos.w 1.0) * 0.5; // Normalize depth to [0, 1]return o; }但是达不到预期&#xff0c;最后返回的值一直大于…...

ROS——Action学习

文章目录 ROS Action概念自定义Action类型参考ROS Action概念 ROS Service会阻塞程序流,程序无法进行其它的工作,有时我们需要同时进行多个任务。 ROS Action可以满足要求,ROS Action提供程序的非阻塞执行。 Action是ROS Node的通信方式之一 Action server 向ROS系统广…...

基于C语言中的类型转换,C++标准创造出了更加可视化的类型转换

目录 前言 一、 C语言中的类型转换 二、为什么C需要四种类型转换 三、C中新增的四种强制类型转换操作符以及它们的应用场景 1.static_cast 2.reinterpret_cast 3.const_cast 4.dynamic_cast 前言 在C语言中&#xff0c;如果赋值运算符左右两侧的类型不同&#xff0c;或者…...

如何创建族表

https://jingyan.baidu.com/article/c275f6bafa5714a23c756768.html...

【UnityRPG游戏制作】Unity_RPG项目_PureMVC框架应用

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;就业…...

并行计算的一些知识点分享--并行系统,并行程序, 并发,并行,分布式

并行计算 核是个啥&#xff1f; 在并行计算中&#xff0c;“核”通常指的是处理器的核心&#xff08;CPU核心&#xff09;。每个核心都是一个独立的处理单元&#xff0c;能够执行计算任务。多核处理器指的是拥有多个这样核心的单一物理处理器&#xff0c;这样的设计可以允许多…...

设计模式:访问者模式

访问者模式&#xff08;Visitor Pattern&#xff09;是行为设计模式的一种&#xff0c;它使你能够在不修改对象结构的情况下&#xff0c;给对象结构中的每个元素添加新的功能。访问者模式将数据结构和作用于结构上的操作解耦&#xff0c;使得操作集合可相对自由地演化。 核心概…...

vivado Virtex-7 配置存储器器件

Virtex-7 配置存储器器件 下表所示闪存器件支持通过 Vivado 软件对 Virtex -7 器件执行擦除、空白检查、编程和验证等配置操作。 本附录中的表格所列赛灵思系列非易失性存储器将不断保持更新 &#xff0c; 并支持通过 Vivado 软件对其中所列非易失性存储器 进行擦除、…...

检测服务器环境,实现快速部署。适用于CRMEB_PRO/多店

运行效果如图&#xff1a; 最近被好多人问&#xff0c;本来运行的好好的&#xff0c;突然swoole就启动不了了。 本工具为爱发电&#xff0c;如果工具正好解决了您的需求。我会很开心 代码如下&#xff1a; """本脚本为爱发电by:网前雨刮器 """…...

Spring Security初探

url说明方法/login/oauth/authorize授权断点。无登录态时跳转到/authentication/require&#xff0c;有登录态时跳转到/loginorg.springframework.security.oauth2.provider.endpoint.AuthorizationEndpoint#authorize/authentication/require自己写的用于重定向到登录页面的ur…...

【Java代码审计】敏感信息泄漏篇

【Java代码审计】敏感信息泄漏篇 敏感信息泄露概述 敏感信息泄露概述 敏感信息是业务系统中对保密性要求较高的数据&#xff0c;通常包括系统敏感信息以及应用敏感信息 系统敏感信息指的是业务系统本身的基础环境信息&#xff0c;例如系统信息、中间件版本、代码信息&#xff…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...