近期在使用云函数时一直有一个想法,难道每次增加一个功能都需要跑到后台折腾一通吗?有没有与Excel中的EVALUATE()似的函数?
一、基本思路:
在简道云中用文本描述命令,通过前端事件以参数的形式传给云函数,云函数计算出结果后回传给简道云。这样理论上在云函数上搭建一次,就可以满足简道云中的多数基本性需求。比如子表单自动编号、随机抽题等,以及很多其它待验证的场景。
二、实现方法:
利用python的eval()函数 eval() 函数用来执行一个字符串表达式,并返回表达式的值。
相关学习资料 :
1、Python eval() 函数基础教程
2、Python之eval()函数危险性浅析
多功能函数代码(参考):
# -*- coding: utf8 -*-
import json
import random
import numpy
import urllib.parse
import requests
def main_handler(event, context):
string=urllib.parse.unquote(event['queryString']['string'])
if( "requests" in string):
eval(string)
s={}
s["string"]="已发送"
return {
"isBase64Encoded": False,
"statusCode": 200,
"headers": {"Content-Type": "application/json"},
"body": json.dumps(s)
}
else:
r={}
r["release"]=eval(string)
r["string"]=str(r["release"])
return {
"isBase64Encoded": False,
"statusCode": 200,
"headers": {"Content-Type": "application/json"},
"body": json.dumps(r)
}
三、已测案例:
例1:获取正序序列 命令 延展 可用于子表单自动编号
例2:获取随机序列 命令 random.sample(range(1,5),4) sum([10,9,8,7,6,45,77,9,22,33]) 命令 requests.post(webhook,headers,json) 延展 基础性群通知 注:目前测试结果为不能直接发文字
四、更多内容
更多沟通交流可添加微信(zmlnow)
添加时请备注:简道云
都看到这里了
如果您觉得有用
赞一个呗
赏一个呗
偶会更有动力哈 |