[发明专利]基于动态模板编译技术的插件系统及其实现方法有效
申请号: | 202110446048.5 | 申请日: | 2021-04-25 |
公开(公告)号: | CN113110845B | 公开(公告)日: | 2021-10-26 |
发明(设计)人: | 王力国;王玉略;金克;纪达麒;陈运文 | 申请(专利权)人: | 达而观数据(成都)有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 成都九鼎天元知识产权代理有限公司 51214 | 代理人: | 贾年龙 |
地址: | 610015 四川省成都市*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 动态 模板 编译 技术 插件 系统 及其 实现 方法 | ||
1.一种基于动态模板编译技术的插件系统,其特征在于,包括:表单生成器、模板代码编辑器和代码生成器;
所述表单生成器负责对基础组件进行条件渲染,同时处理基本的代码编译控制逻辑,然后生成一段用于描述整个表单的JSON文件;
所述模板代码编辑器负责建立Python代码生成映射,编写Python代码的生成模板,生成一段伪Python代码;
所述代码生成器根据表单生成器生成的JSON文件以及模板代码编辑器生成的伪Python代码,将伪Python代码与JSON文件相结合,最终编译为可执行的Python代码;
所述表单生成器负责对基础组件进行条件渲染过程包括:通过动态模板编译技术在生成JavaScript中间代码并在渲染基础组件的时候实现条件关系的检测;
其中,动态模板编译技术的处理逻辑为通过正则的方式进行动态模版编译,提取并替换关键词参数动态生成一段JavaScript代码,再通过eval(“code”)的方式动态执行条件方法。
2.根据权利要求1所述的一种基于动态模板编译技术的插件系统,其特征在于,在Python代码的生成过程中,采用递归的方式生成Python代码,在该生成过程中使用闭包实现节点之间的状态传递。
3.根据权利要求1所述的一种基于动态模板编译技术的插件系统,其特征在于,所述代码生成器通过使用Nodejs虚拟机的沙箱环境注入JSON文件后安全地将伪Python代码编译为可执行的合法的Python代码。
4.根据权利要求1所述的一种基于动态模板编译技术的插件系统,其特征在于,所述基础组件包括输入框、复选框、颜色选择器、路径选择器和下拉框。
5.根据权利要求1或4所述的一种基于动态模板编译技术的插件系统,其特征在于,所述基础组件通过组件工厂生成。
6.一种基于动态模板编译技术的插件系统实现方法,其特征在于,包括:
步骤1:通过表单生成器对基础组件进行条件渲染,同时通过表单生成器处理基本的代码编译控制逻辑,然后生成一段用于描述整个表单的JSON文件;
步骤2:通过模板代码编辑器建立Python代码的生成映射,编写Python代码的生成模板,生成一段伪Python代码;
步骤3:将表单生成器生成的JSON文件以及模板代码编辑器生成的伪Python代码传输给代码生成器,代码生成器再将伪Python代码与JSON文件相结合,最终编译为可执行的Python代码;
所述步骤1中通过表单生成器对基础组件进行条件渲染的过程包括:通过动态模板编译技术在生成JavaScript中间代码并在渲染基础组件的时候实现条件关系的检测;
其中,动态模板编译技术的处理逻辑为通过正则的方式进行动态模版编译,提取并替换关键词参数动态生成一段JavaScript代码,再通过eval(“code”)的方式动态执行条件方法。
7.根据权利要求6所述的一种基于动态模板编译技术的插件系统实现方法,其特征在于,在Python代码的生成过程中,采用递归的方式生成Python代码,在该生成过程中使用闭包实现节点之间的状态传递。
8.根据权利要求6所述的一种基于动态模板编译技术的插件系统实现方法,其特征在于,在所述步骤3中,代码生成器通过使用Nodejs虚拟机的沙箱环境注入JSON文件后安全地将伪Python代码编译为可执行的合法的Python代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于达而观数据(成都)有限公司,未经达而观数据(成都)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110446048.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种土木建筑施工用的浇筑框架固定结构
- 下一篇:一种变温霍尔效应测试夹具