当前位置:首页>java>写给法律人的「代码执行节点」入门(建议收藏)

写给法律人的「代码执行节点」入门(建议收藏)

  • 2026-01-31 21:06:12
写给法律人的「代码执行节点」入门(建议收藏)

编者按:

在工作流里,一些需要“稳定、按规则执行”的步骤不太适合交给大模型反复生成,比如格式转换、按固定规则提取信息、统一输出格式或做条件分支。Dify 的「代码执行」节点更像一个小型处理器:用 Python 把规则写清楚,便于复用。

本文围绕「代码执行」节点展开,介绍输入变量、代码区与输出变量的基本结构,以及必须遵循的返回格式。同时梳理非技术背景也能上手的 Python 基础,并结合法律文本处理的常见需求,示例说明如何用关键词/正则提取管辖或统一社会信用代码、解析 JSON 字段、汇总多段结果,以及如何借助 AI 辅助写代码。

代码执行节点的介绍

Python 是一种简洁易读、语法友好的编程语言,被广泛用于数据分析、自动化任务、人工智能等领域。在 Dify 中,「代码执行」可以利用 Python 脚本来处理变量、逻辑判断、格式转换等任务,是搭建工作流不可或缺的一部分。

如下图所示,「代码执行」包括三个主要部分:输入变量,代码语法和输出变量。默认情况下,输入变量都会被冠以 arg1、arg2(以此类推)的名称。在代码语法中,将会以该显示名称代指各个输入变量。输出变量的默认名称是result。

Python运作的返回值一定要是一个字典 { "result": xxx },该结果会传给下一个节点。

(点击图片可放大查看)

Python基础知识

「代码执行」节点要求使用者掌握基础的Python知识,对于非计算机背景的人而言,掌握这部分基础知识也是可行的。

1.Python数据类型总览

Python 会自动识别用户存入变量的数据类型,比如:

  • 字符串 (str):文本,用单引号 '' 或双引号 "" 包裹(如 '你好'"Python")。
  • 整数 (int):没有小数的数字(如 10-5)。
  • 浮点数 (float):带小数的数字(如 3.1499.5)。
  • 布尔值 (bool):只有 True(真)和 False(假)两种(通常用于判断)。
  • 列表 (list):用 [] 方括号包裹的有序、可变的元素集合(例如:['苹果', '香蕉'])。
  • 元组 (tuple):用 () 圆括号包裹的有序、不可变的元素集合(例如:('红色', '蓝色'))。
  • 字典 (dict):用 {} 大括号包裹的键值对集合,通过键来查找值(例如:{'姓名': '李四', '年龄': 25})。这就是代码执行节点的输出类型。
  • 集合 (set):用 {} 大括号包裹的无序、不重复的元素集合(例如:{1, 2, 3})。

JSON 和 Python 中的数据类型有对应之处,这也是为什么JSON的数据特别适合用于代码当中。

(点击图片可放大查看)

2.变量和简单的数据类型

• 变量

每个变量指向一个值。变量名只能包含字母、数字和下划线,但不能以数字开头(如123name的变量名是无效的),不能使用空格,也不能以 Python 的保留字(如if、for、break等)作为变量名。

在 Python 中,保留字(keywords),是具有特殊含义和用途的单词,不能被用作变量名、函数名或标识符。

Python

contract_name = "劳动合同"

year = 2025

在上面的例子中,“contract_name”是变量名,值是“劳动合同”(一个字符串);“year”是变量名,值是“2025”(一个整数)。

• 字符串

字符串就是用英文引号(单引号或双引号)括起来的文本:

Python

text = "甲方:北京A公司\n乙方:上海B公司"

在字符串中可以添加换行符:

Python

text = "甲方:北京A公司\n乙方:上海B公司"

多个字符串可以拼接:

Python

title = "附则"

description = '本合同一式两份。经双方签字或盖章后生效。'

full_text = title + ": " + description

多个字符串的拼接也可以通过 f 字符串(formatted string)实现:

Python

title = "附则"                  description = '本合同一式两份。经双方签字或盖章后生效。'                  full_text = f"{title}: {description}"

f 字符串是一种在 Python 的字符串中内嵌变量或表达式的简洁格式化语法。使用 f 字符串时,可以在字符串前加 f  F,并用英文的单引号、双引号或三引号包裹字符串内容。在字符串中,花括号 {} 内可以直接嵌入变量或任意表达式,Python 会在运行时将其求值并替换为结果。又比如:

Python

plaintiff = "张三"

defendant = "李四"

full_text = f"{plaintiff}诉{defendant}租赁合同纠纷案起诉状"

可以用 in 来判断某个字符串是否在指定字符串中:

Python

text = "因本合同以及本合同项下订单/附件/补充协议等(如有)引起或有关的任何争议,由合同各方协商解决,也可由有关部门调解。协商或调解不成的,应向甲方所在地有管辖权的人民法院起诉。"

if "仲裁" in text:

    print("该合同约定了仲裁管辖条款")

else:

    print("该合同未约定仲裁管辖条款")

常见字符串方法对比一览

(点击图片可放大查看)

• 数

Python 支持整数和浮点数的数学运算:

Python

amount = 3000

rate = 0.05

total_number = amount * (1 + rate) 

• 注释

注释用 # 表示,井号后面的内容都会被 Python 解释器忽略。比如前面的例子加上注释后如下:

Python

amount = 3000       # 这里是整数 int

rate = 0.05         # 这里是浮点数 float

total_number = amount * (1 + rate) # 这里进行数学运算

3.列表(list

列表是一种有序的元素集合,用方括号表示 []

Python

parties = ["甲方", "乙方"]

years = [2024, 2025]

可以访问其中的元素,但需注意,索引从 0 而不是从 1 开始:

Python

parties = ["甲方", "乙方"]

print(parties[0])  # 输出 "甲方"

遍历列表(for 循环)

Python

parties = ["甲方", "乙方"]for party in parties:    print(party) # 依次输出合同各方:甲方、乙方

你也可以添加、删除元素,常见的是 append 和 remove 语法:

Python

parties = ["甲方", "乙方"]parties.append("丙方") # 将元素“丙方”添加到变量 parties 的末尾parties.remove("乙方") # 删除列表中的“乙方”

4.条件语句(if)

• 基本结构

Python

if 条件:

   执行语句

elif 条件:

    执行语句

else:

    其他情况

例如前面的例子:

Python

contract_text = "……本合同如有争议,提交仲裁机构处理……"

if "仲裁" in contract_text:

    print("本合同含有仲裁条款")

else:

    print("本合同不含仲裁条款")

5.字典(dict

• 键值对

字典是由“键值对”组成的集合,用于存储结构化数据。每个键(key)都对应一个值(value),用大括号 {} 表示:

Python

contract = {    "title": "劳动合同",    "party_a": "法天使公司",    "party_b": "法小天"}

可以用键来访问值,比如上例中,如果需要获取合同标题,可以

Python

print(contract["title"])  # 输出 "劳动合同"

• .get()方法

但如果键不存在的时候,就会报错。更安全的方式是用 .get().get()方法的第一个参数用于指定键,第二个参数为指定键不存在时返回的值,如未填写,默认为 None:

Python

print(contract.get("sign_date")) # 签订日期不存在时将返回Noneprint(contract.get("sign_date", "No sign date")) # 签订日期不存在时将返回“No sign date”

• 使用for循环来遍历字典

Python

for key, value in contract.items():

    print(f"{key}: {value}")

6.函数

函数是一个可以重复使用的代码块。用 def 定义。

• 函数的基本语法:

Python

def greet(name): # 定义一个名为 greet 的函数,它接收一个参数 name

    print("你好," + name) # 函数的任务是打印问候语

greet("小明") # 调用函数,输出 "你好, 小明"

此时 def greet():后面的所有缩进行构成了函数体。

• 文档字符串(docstring)

可以在函数内部第一行使用一对三个单引号 ''' 或一对三个双引号 """ 撰写说明文档,这种注释方式被称为文档字符串:

Python

def greet(name):

    """打印问候语"""

    print("你好," + name)

• 函数参数默认值
可以为函数指定默认值

Python

def greet(name = "朋友"): # 定义一个名为 greet 的函数,它接收一个参数 name,name 的默认值为“朋友”

    print("你好," + name) # 函数的任务是打印问候语

greet("法小天")   # 输出:你好,法小天

greet()        # 输出:你好,朋友

• 函数返回值(return)

函数可以通过 return 把计算结果“返回”出去,供后续使用:

Python

def add(a, b): # 定义一个名为 add 的函数

    return a + b # 函数返回 a 与 b 之和

result = add(3, 4)  # 调用 add 函数,计算并返回结果,并赋值给 result

print(result)  # 输出 7

return 不仅能返回结果,还会立刻结束函数,执行return 后,后面的代码不会运行,比如:

Python

def check_contract(contract_year):

    if contract_year < 2020:

        return "合同已过期"  # 满足条件时,返回结果并终止函数

    print("检查合同有效性...")  # 这行代码不会运行(因为上面 return 已经执行)

    return "合同在有效期内"

result = check_contract(2019)

print(result)  # 输出:合同已过期(后面的代码没执行)

7.正则表达式(Regex)的基础知识

正则表达式(Regular Expression,简称 regex)是一种用于匹配、搜索和提取字符串中符合特定规则的文本的语法工具。它不像关键词匹配那样死板,也不需要调用大模型,可以在合同、法律文书、模型输出中精准提取结构化信息。

正则符号含义与示例

(点击图片可放大查看)

正则表达式在 Python 中通过 re 模块使用,主要方法有:

(点击图片可放大查看)

以下是一个抽取合同日期的例子:

Python

text = "本合同于2025年7月15日签署。"

date_match = re.search(r"\d{4}年\d{1,2}月\d{1,2}日", text) # 需要注意,由于 re.search() 语法只会返回第一个匹配项,所以如果文本中有多个日期,只有第一个匹配项会被提取到。

print (date_match.group()) # 输出为2025年7月15日

「代码执行」的默认语法

「代码执行」中的代码语法,其默认格式如下:

Python

def main(arg1: str, arg2: str) -> dict:    return {        "result": arg1 + arg2,    }

其中:
  • def main(...): 定义了一个名为 main 的函数。所有传入的变量都通过该函数接收。
  • (arg1: str, arg2: str): 这是 main 函数的参数列表。 
    • arg1arg2 是函数期望接收的输入参数的名称。
    • : 后面的 str 表明arg1arg2 预期是字符串类型 (str),这个类型应与输入参数的实际数据类型保持一致。
  • -> dict: 表示 main 函数预期会返回一个字典 (dict) 类型的值。
  • return {...}: 这是函数返回的部分,「代码执行」中main函数返回的一定是字典。
    • "result"是字典中的键,arg1 + arg2 是对应的值。
  • 但「代码执行」的输出结果并不是这个字典,而是这个字典的键"result"的对应值arg1 + arg2,其会被传递到下游节点。
「代码执行」的应用
代码是一种具有格式化美感的语言,所以「代码执行」也擅长处理格式化任务,比如说从固定格式中的文本提取相关信息,或者将多个输入变量处理成特定格式的输出。
1.If 条件判断:用于关键字检索输出不同结论
「代码执行」可以通过 IF 语句进行条件分支的判断。这和「条件分支」的功能有些类似。但「条件分支」会根据条件的不同判断结果走入不同分支,而「代码执行」的 IF 语句是在内部完成判断后,统一接入同一个下游节点。
「代码执行」中的 IF 语法可以用于关键字检索,从而基于检索结果的不同输出不同结论。
假设导入的变量 arg1 是合同原文,现在需要判断合同中是否含有“管辖”、“仲裁”、“起诉”、“诉讼”的字样来判断合同是否约定了管辖。可以采用如下代码语法:

Python

def main(arg1: str) -> dict:

    jurisdiction_keywords = ["管辖", "仲裁", "诉讼", "起诉"]

    if any(keyword in arg1 for keyword in jurisdiction_keywords):

        result = "该合同约定了管辖条款。"

    else:

        result = "该合同未约定管辖。"

    return {"result": result}

在上述代码示例中:

  • jurisdiction_keywords 是一个关键词列表,用于存储待匹配的字词;

  • any(keyword in arg1 for keyword in jurisdiction_keywords) 表示只要关键词中任意一个出现在合同文本中,条件就成立;

  • if ... else 语句用来做二元判断,并将结果赋值给 result 变量;

  • 最终返回一个字典: { "result": ... },符合「代码执行」的规范。

如果使用正则表达式的话:

Python

import re

def main(arg1: str) -> dict:

    if re.search(r"管辖|诉讼|仲裁|起诉", arg1):

        result = "该合同约定了管辖条款"

    else:

        result = "该合同未约定管辖"

    return {"result": result}

其中,
  • import re:导入 Python 的正则表达式模块。
  • re.search(pattern, string): 检查字符串中是否存在匹配正则表达式的内容;
  • r"管辖|诉讼|仲裁|起诉":这是一个正则中的“或”表达式,任意一个词匹配即为真;
  • 同样使用 if...else 结构,结果格式也正确。
2.拼接数据:整合多个输出结果
下面是法天使智能合同审查中的税率分析工作流中的代码块内容,用于汇总四种税率的分析结果,旨在将每种税率分析结果按照“税率名称+税率分析结果”的形式依次排列。

Python

def main(arg1: str, arg2: str, arg3: str,arg4: str) -> dict:

    analysis_text = f"""### 增值税分析:\n{arg4}\n### 印花税分析:\n{arg1}\n### 契税分析:\n{arg2}\n### 土地增值税分析:\n{arg3}"""

    return {

        "result": {

            "text":analysis_text

        }

    }

其中,
  • analysis_text = ...: 这一行将一个字符串赋值给变量 analysis_text 。
  • f"""...""": 这是 f 字符串。 
    • 三个双引号 """ ("""...""") 表示这是一个多行字符串。
    • 在 f 字符串内部,可以嵌入{} 作为占位符,这指示 Python 解释器: f 字符串内部包含一个 Python 表达式;在运行时,会对表达式求值;求值的结果会以字符串的形式插入到 f 字符串的当前位置。例如,{arg4} 会在运行时被 arg4 这个变量的实际值替换。
  • ### 增值税分析:\n{arg4}\n### 印花税分析:\n{arg1}...: 这部分构建一个包含多个税种分析结果的报告文本。
    • ### 是 Markdown 语法中的三级标题标记,该文本会在支持 Markdown 渲染的界面中显示为第三级标题。
    • \n 是一个换行符。它强制文本在此处断开并另起一行。也可以直接在f"""..."""里面直接换行,而不需要使用 \n,比如前面的例子,也可以不用\n而写成如下的格式:

Python

analysis_text = f"""### 增值税分析:

{arg4}
### 印花税分析:
{arg1}
### 契税分析:
{arg2}
### 土地增值税分析:
{arg3}"""
    • {arg4}{arg1}{arg2}{arg3}:这些是占位符,函数执行时,它们会被传入的 arg4arg1arg2arg3 的实际内容替换。 
  • return { ... }: 函数返回一个字典。
3.通过正则表达式提取信息
如果某种信息都是按照特定格式出现在文本中,比如主体信息等,则「代码执行」可以用于提取特定格式后的文本,不论文本如何变化。比如我们需要在合同文本中识别出合同主体的统一社会信用代码,专门提取这部分属于用于连接外部工具判断企业的征信状态。

Python

import re

def main(arg1: str) -> dict:
    """
    输入:arg1(其值是一个包含统一社会信用代码的字符串)
    输出:{"result": 提取到的统一社会信用代码或默认提示}
    """
    match = re.search(r"\b[0-9A-Z]{18}\b", arg1)
    if match:
        credit_code = match.group()
    else:
        credit_code = "未提取到统一社会信用代码"
    return {"result": credit_code}
其中,
  • import re,导入 Python 的正则表达式模块,用于模式匹配(比如识别身份证号、信用代码、日期等特定格式)。
  • r"[0-9A-Z]{18}":匹配由数字和大写字母组成的 18 位字符串。
  • \b 是单词边界,能防止误匹配到长串中的一部分
  • if match语法:
    • 如果找到了匹配项(即文本中确实存在一个18位数字),就用 match.group() 取出这段文本。
    • 否则就返回一个默认提示,说明未找到符合要求的信息。
4.提取JSON字段(如获取合同类型)
如果合同文本可以被预处理为结构化的 JSON 格式,此时可以使用 Python 的 json 模块对 JSON 字符串进行解析,直接提取所需字段的值。

Python

{

  "contract_id": "20250728-A001",
  "contract_type": "劳动合同",
  "party_A": "法天使(北京)科技有限公司",
  "party_B": "法小天"
}
上述数据是一个典型的 JSON 字符串,包含合同编号、合同类型、甲乙双方主体等字段。我们可以使用如下代码提取合同类型:

Python

import json

def main(arg1: str) -> dict:
    data = json.loads(arg1)  # 将 JSON 字符串转为 Python 字典
    contract_type = data.get("contract_type", "Unknown Contract")  # 提取合同类型,如果没有则使用默认值
    return {"result": f"本合同为{contract_type}"}
其中,
  • import json :导入 Python 的标准模块 json,用于处理 JSON 格式的数据。
  • json.loads(arg1):将传入的 JSON 字符串 arg1 转换为 Python 的字典(dict)类型。
  • data.get("contract_type", "Unknown Contract"):尝试从字典中获取键 "contract_type" 的值;如果没有,就返回默认值 "Unknown Contract"
  • return {"result": f"本合同为:{contract_type}"}:以字典形式返回提取结果给「代码执行」,便于在工作流的下游节点中引用该输出。

使用AI辅助撰写代码语法

即便我们不具备从零开始撰写一段代码的能力,也可以借助 AI 工具辅助撰写符合语法规范的代码。

1.熟悉 AI 平台特有的代码语法要求

为了确保代码在 AI 应用开发平台中顺利运行,必须先了解并遵循所使用的平台的特定语法规范。由于 AI 可能并不熟悉这些平台的规则,因此在撰写代码提示词时,明确提供这些格式要求至关重要。

以 Dify 平台为例:

  • 输入参数默认命名为 arg1arg2 (可以修改)等,请确保代码中的输入变量的名称与此一致。

  • 输出变量默认命名为 result(可以修改,可以是一个或多个),请确保代码中的输出变量的名称与此一致。

  • 主函数必须定义为 main,且其参数必须与输入参数相匹配。

  • 函数返回值必须是一个字典(dict)类型。

若未满足上述任一要求,节点在运行时都可能报错。

2.掌握基础编程知识,高效定位并修复问题

掌握基本的编程语法有助于在调试阶段快速识别和解决问题。

例如:

  • 参数匹配:若函数只接收一个参数,但在定义时却包含了如 arg2: str 这样的多余参数,将导致运行时因参数不匹配而报错,应及时移除不必要的参数。

  • 返回值格式:函数的 return 语句必须返回一个字典结构。直接使用 return output 将导致运行失败,而正确的格式应为 return {"result": output}

  • 数据类型:输入和输出变量的数据类型必须与代码中声明的类型保持一致,否则也会引发错误。

练习

假设用户上传了一个服务合同,合同包括如下内容:

甲方应向乙方支付服务费人民币3000元,费用应在签署后五日内结清。

若甲方逾期付款,应支付违约金人民币5000元。

请提取服务费和违约金,需求是在提到“服务费人民币”、“服务费为人民币”、“违约金人民币”、“违约金为人民币”的字样的时候,能提取后面的数字。

篇幅所限,本文不继续展开代码部分。完整示例与配套讲解已收录在,欢迎按需查阅。

-END-
相关阅读

法律人如何给智能体写提示词,让大模型输出结果更好用?

总觉得大模型不够聪明?这篇教法律人怎么给AI带小抄(知识库与RAG)

让Dify知识库真正可用:从文档预处理到检索设置的实务拆解

搭建「法律智能体」前,你需要了解的几个重要概念

工作流里的“变量”到底是什么?怎么用?

快速搭建法律智能体:以Dify跑通一个最小工作流


如果你希望在本文的基础上,进一步系统了解“大模型 + 工作流 + 知识库”如何结合起来服务法律业务,可以参考书籍

如果你想从实操出发,从0到1学会如何搭建一个能帮到自己的法律智能体,欢迎报名1月16-17日北京、1月30-31日深圳开课的法律智能体设计师(LAD)实训营,可添加课程负责人咨询报名⬇️

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 20:50:18 HTTP/2.0 GET : https://f.mffb.com.cn/a/463111.html
  2. 运行时间 : 0.838654s [ 吞吐率:1.19req/s ] 内存消耗:4,657.34kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=45e45afdbbdcdd004d8d9be796a1fe6b
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000724s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000705s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.004483s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000865s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000780s ]
  6. SELECT * FROM `set` [ RunTime:0.004209s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000595s ]
  8. SELECT * FROM `article` WHERE `id` = 463111 LIMIT 1 [ RunTime:0.009165s ]
  9. UPDATE `article` SET `lasttime` = 1770555018 WHERE `id` = 463111 [ RunTime:0.004004s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.006256s ]
  11. SELECT * FROM `article` WHERE `id` < 463111 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.022151s ]
  12. SELECT * FROM `article` WHERE `id` > 463111 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.200569s ]
  13. SELECT * FROM `article` WHERE `id` < 463111 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.325141s ]
  14. SELECT * FROM `article` WHERE `id` < 463111 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.037896s ]
  15. SELECT * FROM `article` WHERE `id` < 463111 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.058290s ]
0.842567s