说明:收录25万 73个行业的国家标准 支持批量下载
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210139900.9 (22)申请日 2022.02.16 (71)申请人 上海驻云信息科技有限公司 地址 201203 上海市浦东 新区中国(上海) 自由贸易试验区科 苑路399号7幢 (72)发明人 蒋烁淼 周逸灵  (74)专利代理 机构 北京中索 知识产权代理有限 公司 11640 专利代理师 高海涛 (51)Int.Cl. G06F 16/958(2019.01) G06F 16/23(2019.01) G06F 8/30(2018.01) (54)发明名称 一种从数据库加载Python脚本并使用的方 法及系统 (57)摘要 本发明公开了一种从数据库加载Python脚 本并使用的方法及系统, 所述方法包括如下步 骤: 编写脚本, 并将编写完成的脚本以脚本ID为 key值, 脚本内容为value值保存入数据库中; 根 据脚本ID, 从数据库中取出脚本内容, 并通过直 接获取脚本的函数对象 的方式直接运行和/或通 过创建并返回模块对象 的方式封装为包。 通过应 用本方法及本系统可以节约启动运行环境的时 间, 提高脚本的启动速度。 权利要求书1页 说明书6页 附图3页 CN 114491374 A 2022.05.13 CN 114491374 A 1.一种从数据库加载Pytho n脚本并使用的方法, 其特 征在于, 包括如下步骤: 编写脚本, 并将编写完成的脚本以脚本ID为key值, 脚本内容为value值保存入数据库 中; 根据所述脚本ID, 从数据库中取出脚本内容, 并通过直接获取脚本的函数对象的方式 直接运行和/或通过创建并返回模块对象的方式封装为包。 2.根据权利要求1所述的方法, 其特 征在于, 所述 直接运行脚本的方法包括如下步骤: 根据所述脚本ID, 创建脚本运行 上下文; 加载脚本, 并返回加载脚本后的上 下文; 从所述加载脚本后的上 下文中获取脚本中待调用的函数, 并直接运行 所述函数。 3.根据权利要求2所述的方法, 其特征在于, 所述函数运行结束之后会返回HTTP响应, 并展示所述 函数的返回值。 4.根据权利要求1所述的方法, 其特 征在于, 所述封装为包的方法包括如下步骤: 用户自定义脚本运行过程中, 遇到导入语句时, 根据所述导入语句中的指定ID从数据 库中查询脚本ID; 若所述脚本ID存在, 则根据所述脚本ID生成模块对象; 为待导入脚本创建上下文 并加载所述待导入脚本, 将加载脚本后的上下文作为模块的 上下文填入所述模块对象; 返回所述模块对象, 以供 所述用户自定义脚本作为包进行导入。 5.根据权利要求4所述的方法, 其特征在于, 在运行用户自定义脚本之前, 还包括如下 步骤: 将用户自定义脚本的上下文中的导入包的操作替换为从数据库加载脚本并生成模块 对象返回的操作。 6.根据权利要求4所述的方法, 其特征在于, 若所述指定ID为待导入脚本中的特定函 数, 则从所述模块对 象的上下文中获取所述特定的函数, 并加入到所述自定义脚本的上下 文中。 7.根据权利要求4所述的方法, 其特征在于, 若所述脚本ID不存在, 则调用Python原生 的导入函数, 进行创建模块对象, 并导入第三方包。 8.基于权利要求1 ‑7任一项所述方法的系统, 其特 征在于, 包括: 保存模块: 编写脚本, 并将编写完成的脚本以脚本ID为key值, 脚本内容为value值保存 入数据库中; 使用模块: 根据脚本ID, 从数据库中取出脚本内容, 并通过直接获取脚本的函数对象的 方式直接运行和/或通过创建并返回模块对象的方式封装为包。 9.一种计算机可读存储介质, 其上存储有计算机程序, 其特征在于, 所述程序 执行时实 现权利要求1 ‑7任一项所述方法的步骤。 10.一种计算机设备, 包括存储器、 处理器及存储在存储器上并可在处理器上运行的计 算机程序, 其特征在于, 所述处理器执行所述程序时实现如权利要求 1‑7任一项所述方法的 步骤。权 利 要 求 书 1/1 页 2 CN 114491374 A 2一种从数据库加载Python脚本并使用的方 法及系统 技术领域 [0001]本发明属于计算机技术领域, 具体而 言属于一种从数据库加载Python脚本并使用 的方法及系统。 背景技术 [0002]对于支持执行用户自定义Python脚本的系统中, 是否能方便有效地管理用户提 交 的自定义Pytho n脚本是一个必须要面对的问题。 [0003]一般来说, 支持执行用户自定义脚本 的系统, 往往会把用户自定义脚本保存为本 地文件来直接执行(如: 用PHP编写的Wordpress), 也有将用户自定义脚本放入容器中运行 的方式(各家云厂 商的serverles s平台), 然 而上述方法均存在其各自的弊端。 [0004]对于保存为本地文件直接运行的方式, 当服务器存在多台时, 必然要做额外 的工 作保证各个服务器上 的用户自定义脚本文件一致, 同时本地文件也会在运行时被缓存, 脚 本更新后必须清除缓存 才能执行新版本的脚本 。 [0005]对于放入容器中运行的方式, 首先由于容器中需要启动一个完整的, 和主程序隔 离的环境, 耗费资源比较多, 并且在脚本更新后, 需要更新容器才能执行新版本的脚本, 加 剧了资源的耗费。 [0006]此外, Python语言多个脚本文件之间的相互引用是基于磁盘文件系统进行的。 而 对于将脚本文件内容保存在数据库中, 在需要执行时取出执行的系统, 由于脚本并不保存 在磁盘上, 因此import语句只能正常导入Python内置库以及已经在系统中安装的第三方 库, 无法导入另一个保存在数据库中的Pytho n脚本, 也增 加了不便之处。 [0007]有鉴于此, 特提出本发明。 发明内容 [0008]本发明的第一目的在于提供一种从数据库加载Python脚本并使用的方法, 该方法 是通过将编写完成的脚本以脚本ID和脚本内容的形式保存入 数据库中, 如此便轻松解决了 保存在本地可能会 出现的数据不一致的问题, 并且保存到数据库中的Python脚本不仅可以 取出供使用者直接运行, 也可以通过封装为包的形式供其他使用者进行导入, 大大提高了 用户自定义脚本编写的灵活性和可扩展性。 [0009]本发明的第二目的在于提供了一种从数据库加载Python脚本并使用的系统, 本系 统是基于上述方法所设计, 也即是说本系统的设计为上述方法的实现提供了坚实的底层保 障。 [0010]为了实现本发明的上述目的, 特采用以下技 术方案: [0011]本方法的方法包括如下步骤: [0012]编写脚本, 并将编写完成的脚本以脚本ID为key值, 脚本内容为value值保存入数 据库中; [0013]根据脚本ID, 从数据库中取出脚本内容, 并通过直接获取脚本的函数对象的方式说 明 书 1/6 页 3 CN 114491374 A 3

.PDF文档 专利 一种从数据库加载Python脚本并使用的方法及系统

文档预览
中文文档 11 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共11页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种从数据库加载Python脚本并使用的方法及系统 第 1 页 专利 一种从数据库加载Python脚本并使用的方法及系统 第 2 页 专利 一种从数据库加载Python脚本并使用的方法及系统 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 11:12:22上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。