【提效工具开发】Python功能模块执行和 SQL 执行 需求整理

需求梳理


背景

当前我们在IDE或MySQL查询工具中只能进行个人使用,缺乏共享功能,且在查询及数据统计上有一定的不便。为了改善这种情况,计划搭建一个Web平台,通过后台交互来提升效率。此平台需要兼容Python工具和SQL工具的管理、执行与记录。


需求概述
  1. 工具管理模块

    • 平台支持Python和SQL工具的管理,包括工具的创建、更新、需求关联及执行记录保存。
    • 工具的基础信息包括:
      • 工具名称
      • 创建人、更新人
      • 创建时间、更新时间
      • 工具类型:推荐用字符串(如"SQL", “Python”)标识类型,便于扩展。
  2. 需求与工具的关联关系

    • 需求表中的需求 (也可以不关联,我们是和需求做强关联) 可以关联多个工具,采用一对多的外键约束。
    • 需求删除时将弹出确认,用户可选择是否删除关联工具。
  3. 代码管理模块

    • 设计与工具表关联的表来保存具体工具代码。
    • 表结构:
      • Python工具可关联多条Python文件记录,包含文件名称、路径和代码内容。
      • 必须指定一个文件为主文件 (main 文件),用于执行。
      • SQL工具关联一条SQL代码记录,无需文件名称。
    • Python代码存储于文件系统,并在表中保存路径。
  4. 执行记录管理

    • SQL工具执行记录
      • 记录执行的SQL语句、执行结果、错误信息、执行时间等。
      • 建议错误信息结构包括:错误代码、错误描述等。
    • Python工具执行记录
      • 记录执行人信息、执行结果(成功或失败)、执行日志(详细描述过程和结果)。
      • 记录主文件的路径和是否为main文件。
      • 记录执行开始和结束时间、执行消耗时间。

功能模块需求
  1. 工具执行模块(视图)
    • SQL工具执行

      • 支持接收SQL语句并执行,记录执行结果,包括执行SQL、结果和错误信息。
      • 增加执行安全性检查,如SQL注入防护、超时限制。
      • 异步执行,以避免页面卡顿。
    • Python工具执行

      • 从数据库中读取指定的main文件路径,确保有明确的执行入口。
      • 使用沙箱环境执行Python代码,隔离系统资源,防止安全风险。
      • 执行信息反馈到前端,包括详细结果和日志。
      • 异步执行,确保界面响应。

技术实现要求
  • 后端:使用Django REST Framework (DRF)实现API接口和数据管理功能。
  • 前端:element Vue2。

总结

在Python工具的代码管理中,明确了必须指定一个main文件作为执行入口,以确保执行过程中有明确的文件可供调用。同时在执行时从数据库中读取并验证main文件路径,确保安全执行。

歇后语

后边我会继续更新实现逻辑, 有需要的请关注我后续更新

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度洞察| 超6亿银发精准流量,40+泛银发群体参与消费三大变化

作者 | NewAgingPro团队 前言 9月24日,AgeClub成立银发流量及场景联盟(简称:AgeMCN),助力银发经济高质量发展。 10月11日,AgeClub发布《2024银发流量全景洞察报告》,探索银发流量发展新模式…

Spring Boot——日志介绍和配置

1. 日志的介绍 在前面的学习中,控制台上打印出来的一大堆内容就是日志,可以帮助我们发现问题,分析问题,定位问题,除此之外,日志还可以进行系统的监控,数据采集等 2. 日志的使用 在程序中获取日…

Redis 组网方式入门

文章目录 一、组网方式1. 单实例模式描述优点缺点适用场景 2. 主从复制模式(Master-Slave Replication)描述优点缺点适用场景基于docker的redis主从复制1. 配置主节点2. 配置从节点3. 查看节点状态4. 验证主从数据同步5. 查看同步进度 3. 哨兵模式&#…

信号-2-信号捕捉

相关概念:递达 未决 / 阻塞 忽略 阻塞 vs 忽略 阻塞: 如果指定信号信号被阻塞, block期间该信号不能被递达,一直在pending表中。知道block被撤销后, 该信号才能递达,递达后对应pending位置置零。 忽…

(蓝桥杯C/C++)——基础算法(下)

目录 一、时空复杂度 1.时间复杂度 2.空间复杂度 3.分析技巧 4.代码示例 二、递归 1.递归的介绍 2.递归如何实现 3.递归和循环的比较 4.代码示例 三、差分 1.差分的原理和特点 2.差分的实现 3.例题讲解 四、枚举 1.枚举算法介绍 2.解空间的类型 3. 循环枚举解…

【极限编程(XP)】

极限编程(XP)简介 定义与核心价值观:极限编程(Extreme Programming,XP)是一种轻量级、敏捷的软件开发方法。它强调团队合作、客户参与、持续测试和快速反馈等价值观,旨在提高软件开发的效率和质…

如何编写安全的 Go 代码

原文:Jakub Jarosz - 2024.11.02 在编写 Go 代码时,如何时刻考虑安全性?要在一篇简短的文章中回答这个问题似乎不太可能。因此,我们将把范围缩小到一些具体做法上。 这些实践如果持续应用,将有助于我们编写健壮、安全…

Go八股(Ⅳ)***slice,string,defer***

***slice,string,defer*** 1.slice和arry的区别 arry: Go语言中arry即为数据的一种集合,需要在声明时指定容量和初值,且一旦声明就长度固定,访问时按照索引访问。通过内置函数len可以获取数组中的元素个…

使用 Mac 数据恢复从 iPhoto 图库中恢复照片

我们每个人都会遇到这种情况:在意识到我们不想丢失照片之前,我们会永久删除 iPhoto 图库中的一些照片。永久删除这些照片后,是否可以从 iPhoto 图库中恢复照片?本文将指导您使用免费的 Mac 数据恢复软件从 iPhoto 中恢复照片。 i…

Spark 的介绍与搭建:从理论到实践

目录 一、分布式的思想 (一)存储 (二)计算 二、Spark 简介 (一)发展历程 (二)Spark 能做什么? (三)spark 的组成部分 (四&…

Spring Boot2(Spring Boot 的Web开发 springMVC 请求处理 参数绑定 常用注解 数据传递 文件上传)

SpringBoot的web开发 静态资源映射规则 总结:只要静态资源放在类路径下: called /static (or /public or /resources or //METAINF/resources 一启动服务器就能访问到静态资源文件 springboot只需要将图片放在 static 下 就可以被访问到了 总结&…

Vue2中使用firefox的pdfjs进行文件文件流预览

文章目录 1.使用场景2. 使用方式1. npm 包下载,[点击查看](https://www.npmjs.com/package/pdfjs-dist)2. 官网下载1. 放到public文件夹下面2. 官网下载地址[点我,进入官网](https://github.com/mozilla/pdf.js/tags?afterv3.3.122) 3. 代码演示4. 图片预览5. 如果遇到跨域或者…

2024软件测试面试热点问题

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 大厂面试热点问题 1、测试人员需要何时参加需求分析? 如果条件循序 原则上来说 是越早介入需求分析越好 因为测试人员对需求理解越深刻 对测试工…

C语言 | Leetcode C语言题解之第542题01矩阵

题目: 题解: /*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/ type…

C++总结

目录 一、面向对象的三大特性 二、引用 2.1 概念 2.2特性 三、类与对象 3.1概念 3.2 类的内容 3.3对象的创建 四、构造函数与析构函数 五、封装 六、继承 6.1概念与基础使用 6.2 继承权限 6.2.1 权限修饰符 6.2.2 继承权限 6.3构造函数 6.3.1 派生类与基类的构造函数关系 6.3.2…

2024 CSS保姆级教程二 - BFC详解

前言 - CSS中的文档流 在介绍BFC之前,需要先给大家介绍一下文档流。​ 我们常说的文档流其实分为定位流、浮动流、普通流三种。​ ​ 1. 绝对定位(Absolute positioning)​ 如果元素的属性 position 为 absolute 或 fixed,它就是一个绝对定位元素。​ 在…

在PHP8内,用Jenssegers MongoDB扩展来实现Laravel与MongoDB的集成

在现代 web 开发中,MongoDB 作为一种流行的 NoSQL 数据库,因其灵活的文档结构和高性能而受到许多开发者的青睐。Laravel,作为一个优雅的 PHP Web 框架,提供了丰富的功能和优雅的代码风格。本文将指导你如何在 Laravel 项目中集成 …

GPU 环境搭建指南:如何在裸机、Docker、K8s 等环境中使用 GPU

本文主要分享在不同环境,例如裸机、Docker 和 Kubernetes 等环境中如何使用 GPU。 跳转阅读原文:GPU 环境搭建指南:如何在裸机、Docker、K8s 等环境中使用 GPU 1. 概述 仅以比较常见的 NVIDIA GPU 举例,系统为 Linux,…

Axure设计之左右滚动组件教程(动态面板)

很多项目产品设计经常会遇到左右滚动的导航、图片展示、内容区域等,接下来我们用Axure来实现一下左右滚动的菜单导航。通过案例我们可以举一反三进行其他方式的滚动组件设计,如常见的上下滚动、翻页滚动等等。 一、效果展示: 1、点击“向左箭…

每天五分钟深度学习框架pytorch:如何加载手写字体数据集mnist?

本文重点 那个这节课程之后,我们就将通过代码的方式来搭建CNN和RNN模型,然后训练,我们使用的数据集为pytorch中已经封装好的数据集,比如mnist,cafir10,本文我们学习一下如何在pytorch中使用它们,然后为之后的章节做准备,现在我们拿mnist来举例。 mnist和cafir10 MIN…