如何为测试平台系列(94)设置支持Python的前置条件?
- 内容介绍
- 文章标签
- 相关推荐
本文共计942个文字,预计阅读时间需要4分钟。
回顾+上一节我们探讨了Python脚本,但我们的任务还很长,所以我们需要持续磨砺我们的技能。今天,让我们来思考,如何在+预设条件下+支持Python脚本,多说的不多,我们先暂时休息。
上一节我们狠狠操练了一番oss,但我们的任务还很长久,所以我们需要继续打磨我们的功能。
那今天就让我们来思考下,如何在前置条件支持python脚本,多的不说,我们也暂时不考虑其他语言,因为光考虑支持python,已经够呛啦。
本文旨在探讨一些思路的可行性,不会实际着手编写。
究竟缺什么因为我们只考虑Python脚本,所以我们必须认真考虑我们的需求。
-
能够通过python脚本构建数据
我举个例子,我可以用python脚本实现一些很复杂的功能,而这些功能在当前条件下都不大可能支持。比方说,我想获取当前月的第一天的日期,又或者我想做一些加解密/base64的运算,尽管
pity可以默认帮助实现这些功能,但总会有意想不到的场景出现。为了解决这些困难,我们可以适当编写脚本完成这些工作。 -
能够支持参数
这里的参数指的是
pity内置的参数${参数} -
能够获取到
返回值这个需求大家都能理解,有时候我是想触发一个功能,比如给某些人发邮件,我不需要知道过程,我只要完成这个功能即可。而有时候呢,我需要的是执行过程,并得到
确切的结果。所以这个功能是必不可少的。
要想在python web中执行动态的python脚本,我们可以怎么做呢?
execexec是一个能够执行给定python代码的系统方法,可能也不是很被推荐。它接受的参数是python代码,举个例子:
# 执行原生python脚本print了一条语句
exec(print("你在肝什么"))
接着我们试试在exec中定义一个方法main,并试试能不能调用。
可以看到是能的,这个我只能说肥肠牛批!因为我也基本是没用过,只是知道,今天也是和大家一起尝试下。
至于为什么不被推荐,可能是因为危险性过高,毕竟你传入的啥人家都能给你执行掉。
不过好在exec的数据可以拿到方法执行的返回值,也可以通过字符串替换的方式获得对应的返回值。
由于代码都是python,我们完全可以用git维护一套python工具库。接着通过动态导入来执行对应的方法,这样做的好处是更灵活,但也伴随着更高的成本。
我们得去更新代码(包括监听git push钩子,或者定时拉取以及手动更新),还得提供一个编辑页面,可以让用户更改对应的代码。
但最烦人的还是有扩展包的时候,我们的web项目甚至都需要去安装扩展包。
说起原理倒不难,简单的说就是内嵌了一个python文件目录,通过import导入对应的方法并执行。
github.com/wuranxu/pity前端代码仓库: github.com/wuranxu/pityWeb
本文共计942个文字,预计阅读时间需要4分钟。
回顾+上一节我们探讨了Python脚本,但我们的任务还很长,所以我们需要持续磨砺我们的技能。今天,让我们来思考,如何在+预设条件下+支持Python脚本,多说的不多,我们先暂时休息。
上一节我们狠狠操练了一番oss,但我们的任务还很长久,所以我们需要继续打磨我们的功能。
那今天就让我们来思考下,如何在前置条件支持python脚本,多的不说,我们也暂时不考虑其他语言,因为光考虑支持python,已经够呛啦。
本文旨在探讨一些思路的可行性,不会实际着手编写。
究竟缺什么因为我们只考虑Python脚本,所以我们必须认真考虑我们的需求。
-
能够通过python脚本构建数据
我举个例子,我可以用python脚本实现一些很复杂的功能,而这些功能在当前条件下都不大可能支持。比方说,我想获取当前月的第一天的日期,又或者我想做一些加解密/base64的运算,尽管
pity可以默认帮助实现这些功能,但总会有意想不到的场景出现。为了解决这些困难,我们可以适当编写脚本完成这些工作。 -
能够支持参数
这里的参数指的是
pity内置的参数${参数} -
能够获取到
返回值这个需求大家都能理解,有时候我是想触发一个功能,比如给某些人发邮件,我不需要知道过程,我只要完成这个功能即可。而有时候呢,我需要的是执行过程,并得到
确切的结果。所以这个功能是必不可少的。
要想在python web中执行动态的python脚本,我们可以怎么做呢?
execexec是一个能够执行给定python代码的系统方法,可能也不是很被推荐。它接受的参数是python代码,举个例子:
# 执行原生python脚本print了一条语句
exec(print("你在肝什么"))
接着我们试试在exec中定义一个方法main,并试试能不能调用。
可以看到是能的,这个我只能说肥肠牛批!因为我也基本是没用过,只是知道,今天也是和大家一起尝试下。
至于为什么不被推荐,可能是因为危险性过高,毕竟你传入的啥人家都能给你执行掉。
不过好在exec的数据可以拿到方法执行的返回值,也可以通过字符串替换的方式获得对应的返回值。
由于代码都是python,我们完全可以用git维护一套python工具库。接着通过动态导入来执行对应的方法,这样做的好处是更灵活,但也伴随着更高的成本。
我们得去更新代码(包括监听git push钩子,或者定时拉取以及手动更新),还得提供一个编辑页面,可以让用户更改对应的代码。
但最烦人的还是有扩展包的时候,我们的web项目甚至都需要去安装扩展包。
说起原理倒不难,简单的说就是内嵌了一个python文件目录,通过import导入对应的方法并执行。
github.com/wuranxu/pity前端代码仓库: github.com/wuranxu/pityWeb

