项目文档分享
Hello , 我是小恒。提前祝福妈妈母亲节快乐 。
本文写一篇初成的项目文档 (不是README.md哈),仅供参考
项目名称
脚本存储网页
项目简介
本项目旨在创建一个网页,用于存储和展示各种命令,用户可以通过粘贴复制命令到服务器来完成nginx、MySQL等软件的安装任务,免于使用运维面板。项目还包含各种异常处理机制,确保用户在执行命令时能够避免潜在的问题。
发起时间
2024/5/7
技术选型
后端 python3.11 ,fastapi
前端 Vue,Vuex
接口设计
- 获取脚本列表
请求方法: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"
}
]
}
- 创建脚本
请求方法:POST
请求路径:/v1/scripts
请求参数:
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| name | string | 是 | 脚本名称 |
| command | string | 是 | 脚本命令 |
请求示例:
{
"name": "安装nginx",
"command": "sudo apt-get install nginx"
}
响应示例:{
"data": {
"id": 1,
"name": "安装nginx",
"command": "sudo apt-get install nginx"
}
}
- 更新脚本
请求方法:PUT
请求路径:/v1/scripts/{id}
请求参数:
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 脚本ID |
| name | string | 否 | 脚本名称 |
| command | string | 否 | 脚本命令 |
| 请求示例: |
{
"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"
}
}
- 删除脚本
请求方法:DELETE
请求路径:/v1/scripts/{id}
请求参数:
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 脚本ID |
| 响应示例: |
{
"data": {
"id": 1,
"name": "更新nginx",
"command": "sudo apt-get update && sudo apt-get install nginx"
}
}
- 获取脚本详情
请求方法:GET
请求路径:/v1/scripts/{id}
请求参数:
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| id | int | 是 | 脚本ID |
| 响应示例: |
{
"data": {
"id": 1,
"name": "更新nginx",
"command": "sudo apt-get update && sudo apt-get install nginx"
}
}
- 搜索脚本
请求方法:GET
请求路径:/v1/scripts/search?q={query}
请求参数:
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| query | string | 是 | 搜索关键词 |
| 响应示例: |
{
"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
贪心,二分 同类型题:蓝桥杯 算法提高 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是服务第一次启动调用,onStartCommand是服务每次启动的时候调用,也就是说服务只要启动后就不会调用oncreate方法了。可以在myservice中的任何位置调用stopself方法让服务停止下来。 服务生命周期 前台服务类似于通知会…...
mysql 事物
MySQL中的事务(Transaction)是一个确保数据完整性和一致性的重要概念。它将一组SQL操作捆绑在一起,当作一个单一的工作单元来执行。事务具备以下四个关键特性,即ACID特性: 原子性(Atomicity)&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; }但是达不到预期,最后返回的值一直大于…...
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语言中,如果赋值运算符左右两侧的类型不同,或者…...
如何创建族表
https://jingyan.baidu.com/article/c275f6bafa5714a23c756768.html...
【UnityRPG游戏制作】Unity_RPG项目_PureMVC框架应用
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:就业…...
并行计算的一些知识点分享--并行系统,并行程序, 并发,并行,分布式
并行计算 核是个啥? 在并行计算中,“核”通常指的是处理器的核心(CPU核心)。每个核心都是一个独立的处理单元,能够执行计算任务。多核处理器指的是拥有多个这样核心的单一物理处理器,这样的设计可以允许多…...
设计模式:访问者模式
访问者模式(Visitor Pattern)是行为设计模式的一种,它使你能够在不修改对象结构的情况下,给对象结构中的每个元素添加新的功能。访问者模式将数据结构和作用于结构上的操作解耦,使得操作集合可相对自由地演化。 核心概…...
vivado Virtex-7 配置存储器器件
Virtex-7 配置存储器器件 下表所示闪存器件支持通过 Vivado 软件对 Virtex -7 器件执行擦除、空白检查、编程和验证等配置操作。 本附录中的表格所列赛灵思系列非易失性存储器将不断保持更新 , 并支持通过 Vivado 软件对其中所列非易失性存储器 进行擦除、…...
检测服务器环境,实现快速部署。适用于CRMEB_PRO/多店
运行效果如图: 最近被好多人问,本来运行的好好的,突然swoole就启动不了了。 本工具为爱发电,如果工具正好解决了您的需求。我会很开心 代码如下: """本脚本为爱发电by:网前雨刮器 """…...
Spring Security初探
url说明方法/login/oauth/authorize授权断点。无登录态时跳转到/authentication/require,有登录态时跳转到/loginorg.springframework.security.oauth2.provider.endpoint.AuthorizationEndpoint#authorize/authentication/require自己写的用于重定向到登录页面的ur…...
【Java代码审计】敏感信息泄漏篇
【Java代码审计】敏感信息泄漏篇 敏感信息泄露概述 敏感信息泄露概述 敏感信息是业务系统中对保密性要求较高的数据,通常包括系统敏感信息以及应用敏感信息 系统敏感信息指的是业务系统本身的基础环境信息,例如系统信息、中间件版本、代码信息ÿ…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
