代码执行节点
代码节点支持运行 Python / NodeJS 代码以在工作流程中执行数据转换。该节点极大地增强了 开发人员的灵活性,使他们能够在工作流程中嵌入自定义的 Python 或 Javascript 脚本,并以预 设节点无法达到的方式操作变量。
代码执行节点设置页如下:

通过配置选项,你可以指明所需的输入和输出变量,并撰写相应的执行代码。 案例四:创建chatflow,执行指定sql通过python代码读取数据库数据。
1) 在mysql中准备表及数据
mysql搭建省略。按照如下方式创建mysql库、表及插入数据:
create database mydb;
use mydb;
-- 学生表
CREATE TABLE mydb.students (
id INT COMMENT '学生id',
name VARCHAR(100) COMMENT '学生姓名',
age INT COMMENT '学生年龄' ) COMMENT='学生表';
INSERT INTO mydb.students (id, name, age) VALUES
(1,'张三',18),
(2,'李四',19),
(3,'王五',20),
(4,'赵六',21),
(5,'孙七',18),
(6,'周八',19),
(7,'吴九',20),
(8,'郑十',18),
(9,'钱十一',18), (10,'刘十二',20);
-- 分数表
CREATE TABLE mydb.scores ( id INT COMMENT '学生id',
course_name VARCHAR(50) COMMENT '课程',
score INT COMMENT '成绩' ) COMMENT='分数表';
INSERT INTO mydb.scores (id, course_name, score) VALUES (1, '数学', 85),
(1, '语文', 78),
(2, '数学', 92), (2, '英语', 88),
(3, '数学', 76), (3, '物理', 82),
(4, '化学', 95), (5, '生物', 89),
(6, '历史', 79), (7, '地理', 91);
2) 创建开始节点并命名为“准备参数”

这里配置连接Mysql的host、port、user、password、database,sys.query作为用户输入的查 询SQL。
3) 创建代码执行节点并命名为“查询MySQL”

第六步骤中查询MySQL的代码如下:
import pymysql import re
import json
def main(
host: str = '192.168.1.105',
port: int = 3306,
user: str = 'root',
password: str = '123456',
database: str = 'mydb',
sql: str = ''
):
"""
参数:
host: 数据库主机地址(默认: 192.168.1.105 )
port: 数据库端口(默认:3306)
user: 数据库用户名(默认: root)
password: 数据库密码(默认:123456)
database: 数据库名称(默认: mydb)
sql: 要执行的SELECT语句(必需)
返回:
- 总是返回 {"result": "完整字符串"} 格式
"""
# 校验必填参数
if not sql.strip():
return {"result": "SQL语句不能为空"}
# 严格校验SQL类型
cleaned_sql = re.sub(r'[\s\t\n]+', ' ', sql.strip().lower())
if not cleaned_sql.startswith("select"):
return {"result": "仅允许执行SELECT查询语句"}
# 阻止危险操作
forbidden_keywords = ['insert', 'update', 'delete', 'drop', 'alter', 'create', 'truncate'] if any(keyword in cleaned_sql for keyword in forbidden_keywords):
return {"result": "检测到非查询操作语句"}
try:
# 建立数据库连接
connection = pymysql.c

541

被折叠的 条评论
为什么被折叠?



