当前位置: 首页 > 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…...

Boomi 与 Gong 达成合作,将 Revenue AI 引入 Boomi Agentstudio

Gong 的 Revenue AI 现已原生集成至 Boomi Enterprise Platform 面向 AI 时代的数据激活公司 Boomi 今日宣布&#xff0c;与 Revenue AI 领域领导者 Gong 达成合作&#xff0c;将 Gong 捕获的营收信号原生整合至 Boomi Enterprise Platform。通过此次合作&#xff0c;企业可构…...

【无人机协同】联合优化无人机轨迹、发射功率与地面用户-MEC关联的多无人机多地面用户系统 附matlab代码✅

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e;完整代码获取 定制创新 论文复现点击&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量m…...

企业级应用如何通过Taotoken实现API Key的精细化管理与审计

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 企业级应用如何通过Taotoken实现API Key的精细化管理与审计 在构建基于大模型的企业级应用时&#xff0c;API Key的管理与安全审计…...

QGIS背景图层全攻略:从在线电子地图到本地DEM,打造专业级GIS底图(以南京为例)

QGIS背景图层全攻略&#xff1a;从在线电子地图到本地DEM&#xff0c;打造专业级GIS底图&#xff08;以南京为例&#xff09; 当你的GIS项目已经具备基础矢量数据&#xff08;比如行政区划边界&#xff09;时&#xff0c;如何选择合适的背景图层往往成为提升地图专业度的关键。…...

电磁仿真进阶--CST空心电感建模与实测验证全流程

1. 空心电感建模与仿真的工程价值 空心电感作为高频电路中的核心无源器件&#xff0c;其性能直接影响射频前端、滤波电路等关键模块的工作表现。与传统带磁芯的电感不同&#xff0c;空心电感避免了磁饱和问题&#xff0c;但同时也面临着建模复杂度高、高频特性难以准确预测的挑…...

MASA模组中文汉化包:让技术模组真正为你所用

MASA模组中文汉化包&#xff1a;让技术模组真正为你所用 【免费下载链接】masa-mods-chinese 一个masa mods的汉化资源包 项目地址: https://gitcode.com/gh_mirrors/ma/masa-mods-chinese 还在为Minecraft技术模组的英文界面而头疼吗&#xff1f;当你在使用Litematica进…...

Armbian编译避坑指南:如何绕过‘Docker不可用’及国内网络依赖问题,成功构建RK3588固件

Armbian编译实战&#xff1a;RK3588平台高效构建与网络优化策略 当国内开发者尝试为RK3588这类高性能ARM平台定制Armbian系统时&#xff0c;往往会遇到两个"拦路虎"&#xff1a;Docker环境配置报错和海外资源下载困难。本文将以Rock 5B开发板为例&#xff0c;通过全本…...

昇思大模型垂域模型

昇思 MindSpore 垂域模型是基于通用大模型基座 行业数据微调 领域技术增强构建的行业专用 AI 模型&#xff0c;依托 MindSpore Transformers 套件与昇腾硬件&#xff0c;在医疗、金融、电力、法律、工业等领域实现深度落地&#xff0c;兼顾通用能力与行业专业性&#xff0c;训…...

对比官方直连体验Taotoken在模型调用稳定性上的差异感受

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比官方直连体验Taotoken在模型调用稳定性上的差异感受 作为一名长期与各类大模型API打交道的开发者&#xff0c;我习惯于直接调用…...

ASML财报解读:高毛利与利润倍增背后的光刻机技术垄断与市场逻辑

1. 财报核心数据深度解读&#xff1a;高毛利与利润倍增的背后 看到ASML最新发布的Q2财报&#xff0c;最抓人眼球的两个数字无疑是“毛利率超50%”和“每股净利润增长近一倍”。这不仅仅是两个亮眼的财务指标&#xff0c;更是理解这家全球光刻机巨头当前市场地位、技术壁垒和未来…...