当前位置:首页>python>Python之xsdata-pydantic包语法、参数和实际应用案例

Python之xsdata-pydantic包语法、参数和实际应用案例

  • 2026-07-04 16:38:03
Python之xsdata-pydantic包语法、参数和实际应用案例

xsdata-pydantic 完整使用手册(功能、安装、语法、参数、8大案例、报错与注意事项)

一、xsdata-pydantic 核心概述

1. 包定位与核心功能

xsdata-pydantic 是 xsdata 生态的官方Pydantic扩展插件,xsdata是Python主流XML/XSD代码生成工具,专门用于将XML Schema(.xsd)、WSDL、JSON Schema、DTD自动生成Python数据模型;xsdata-pydantic 替换默认dataclass模型,输出Pydantic v1/v2模型,完美兼容Pydantic校验、序列化、类型转换、FastAPI、ORM场景。

核心能力清单:

  1. XSD自动转Pydantic模型
    :批量解析xsd文件,生成带校验规则的BaseModel;
  2. XML ↔ Pydantic双向序列化
    :xml字符串/文件解析为模型实例、模型导出标准XML;
  3. 完整XSD规范支持
    :支持xsd复杂类型、继承、枚举、数组、属性、命名空间、约束(minOccurs/maxOccurs、长度、正则、数值范围);
  4. Pydantic原生校验
    :自动映射xsd限制为Pydantic Field校验(gt/lt/min_length/max_length/pattern);
  5. 命名空间管理
    :自动处理xmlns前缀、全局/局部命名空间、多xsd导入依赖;
  6. 多源输入
    :本地xsd文件、远程http xsd、wsdl接口、压缩包xsd;
  7. 配置自定义
    :字段命名转换(驼峰/下划线)、可选类型、严格空值、日期格式化、枚举生成策略;
  8. 高性能解析
    :底层lxml解析,支持大XML流式读取,兼容异步IO。

2. 依赖版本区分

  • Pydantic v2:xsdata-pydantic>=23.7,依赖pydantic>=2.0,使用pydantic.BaseModel
  • Pydantic v1:xsdata-pydantic<23.7,依赖pydantic<2.0,使用pydantic.BaseModel
  • 底层基础包:xsdata(必须同步安装,核心代码生成器)、lxml(XML解析)。

二、完整安装流程

1. 基础安装(Pydantic v2 推荐)

# 同时安装核心xsdata + pydantic扩展pip install xsdata xsdata-pydantic pydantic lxml

2. 指定版本(适配Pydantic v1)

pip install xsdata==22.12 xsdata-pydantic==22.12 pydantic==1.10.12 lxml

3. 开发依赖(格式化、类型检查)

pip install black isort mypy

4. 验证安装

# 查看xsdata生成器列表,出现pydantic即成功xsdata generators list

输出包含:pydantic - Pydantic data models

三、核心语法、命令行参数与代码配置参数

(一)命令行生成模型核心语法

基础命令模板:

xsdata [xsd文件路径/文件夹/远程url] --generator pydantic [可选参数]

1. 必用基础参数

参数
作用
示例
--generator pydantic
指定生成Pydantic模型(xsdata默认是dataclasses)
必传
-o / --output PACKAGE
指定输出包名/文件夹
-o models.xml_schema
--package
生成单文件而非多分包
--package schema_models
--ns-struct
按命名空间分文件夹分层输出
大型多命名空间xsd必备

2. Pydantic专属生成参数

参数
功能说明
--pydantic-version v2
强制生成Pydantic V2语法(默认新版自动识别)
--strict-types
严格类型:xsd可选字段生成 `T
--enum-strings
枚举不生成类,直接用字符串字面量Literal
--no-abstract
不生成抽象基类,扁平化复杂继承结构
--field-order name
字段排序:name/definition
--camel-case-fields
XML驼峰标签转Python下划线(自动转换,推荐开启)
--date-format "%Y-%m-%d"
自定义xsd date/datetime序列化格式
--xml-declaration
导出XML时自动头部添加 <?xml version="1.0" encoding="UTF-8"?>

3. 输入源参数

  • 本地单文件:xsdata ./order.xsd --generator pydantic -o models
  • 批量文件夹:xsdata ./xsd_schemas/ --generator pydantic
  • 远程在线XSD:xsdata https://xxx.com/schema.xsd --generator pydantic

(二)Python代码序列化/反序列化核心API

生成模型后,使用xsdata_pydantic内置解析器/写入器,核心类:

  1. XmlParser
    :XML字符串/文件 → Pydantic模型实例
  2. XmlSerializer
    :Pydantic实例 → XML字符串/文件

基础导入语法:

from xsdata_pydantic.bindings import XmlParser, XmlSerializer# 初始化全局解析器/序列化器parser = XmlParser()serializer = XmlSerializer()

核心方法

  1. 解析XML到模型
# 从字符串解析model_instance = parser.from_string(xml_text, target_class=Order)# 从本地文件解析model_instance = parser.parse("data.xml", target_class=Order)# 流式大文件解析(节省内存)for item in parser.parse_stream("large_data.xml", target_class=OrderItem):    pass
  1. 模型导出XML
# 导出字符串xml_str = serializer.to_string(order_model, pretty_print=True)# 写入文件serializer.write(order_model, "output.xml", pretty_print=True)

(三)模型内部自动生成参数(XSD映射Pydantic Field)

xsdata-pydantic自动读取XSD约束,注入Pydantic Field参数,无需手动写校验:

  1. 长度约束:minLength/maxLength → min_length=5, max_length=20
  2. 数值范围:minInclusive/maxExclusive → ge=0, lt=1000
  3. 正则匹配:pattern → pattern=r"^\d{11}$"
  4. 可选字段:minOccurs="0" → Optional[T] | T | None(v2)
  5. 重复数组:maxOccurs="unbounded" → list[T]
  6. 默认值:default="0" → Field(default="0")
  7. 命名空间元数据:XmlField(name="xmlTag", namespace="http://xxx/ns")

四、8个完整可运行实战案例

前置准备

新建demo.xsd用于前4个基础案例,文件内容:

<?xml version="1.0" encoding="UTF-8"?><xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema"targetNamespace="http://demo.com/order">    <xs:complexTypename="OrderItem">        <xs:sequence>            <xs:elementname="goodsId"type="xs:string"minLength="6"maxLength="32"/>            <xs:elementname="price"type="xs:decimal"minInclusive="0"/>            <xs:elementname="num"type="xs:int"minInclusive="1"/>        </xs:sequence>    </xs:complexType>    <xs:complexTypename="Order">        <xs:sequence>            <xs:elementname="orderNo"type="xs:string"pattern="^ORD\d{8}"/>            <xs:elementname="createTime"type="xs:dateTime"/>            <xs:elementname="items"type="OrderItem"maxOccurs="unbounded"/>        </xs:sequence>        <xs:attributename="status"type="xs:string"default="NORMAL"/>    </xs:complexType></xs:schema>

执行生成命令:

xsdata demo.xsd --generator pydantic --camel-case-fields -o schema_models

自动生成 schema_models/demo.py Pydantic V2模型。


案例1:XML字符串解析为Pydantic模型(反序列化)

from xsdata_pydantic.bindings import XmlParserfrom schema_models.demo import Orderxml_data = """<ns0:Order xmlns:ns0="http://demo.com/order" status="NORMAL">    <ns0:orderNo>ORD20260620</ns0:orderNo>    <ns0:createTime>2026-06-20T14:30:00</ns0:createTime>    <ns0:items>        <ns0:goodsId>GOOD123456</ns0:goodsId>        <ns0:price>99.9</ns0:price>        <ns0:num>2</ns0:num>    </ns0:items></ns0:Order>"""# 初始化解析器parser = XmlParser()# XML转模型实例order = parser.from_string(xml_data, Order)# 直接使用Pydantic属性print(order.order_no)print(order.items[0].goods_id)print(order.status)# Pydantic自带字典导出print(order.model_dump())

案例2:Pydantic模型构造,导出标准XML(序列化)

from datetime import datetimefrom xsdata_pydantic.bindings import XmlSerializerfrom schema_models.demo import Order, OrderItem# 手动构建Pydantic对象item = OrderItem(goods_id="GOOD668899", price=199.5, num=1)order = Order(    order_no="ORD20260621",    create_time=datetime.now(),    items=[item],    status="NORMAL")serializer = XmlSerializer()# 生成格式化XML字符串xml_output = serializer.to_string(order, pretty_print=True, xml_declaration=True)print(xml_output)# 写入本地文件serializer.write(order, "output_order.xml", pretty_print=True)

案例3:自动触发XSD约束的Pydantic数据校验

利用XSD生成的Field规则,非法数据直接抛ValidationError:

from pydantic import ValidationErrorfrom schema_models.demo import OrderItem# 违反minLength、minInclusive约束try:    bad_item = OrderItem(goods_id="123", price=-10, num=0)except ValidationError as e:    print("校验失败:", e.errors())

报错会精准提示:字符串长度不足、价格不能小于0、数量最小为1。

案例4:多命名空间、多XSD文件批量生成模型

场景:项目存在common.xsd(公共基础类型)+trade.xsd(业务订单),互相导入。 目录结构:

xsd/ ├─ common.xsd └─ trade.xsd

生成命令(分层命名空间目录):

xsdata ./xsd/ --generator pydantic --ns-struct -o app.schemas

自动按targetNamespace分文件夹,自动处理xsd内<xs:import>依赖,无需手动调整导入路径。

案例5:XSD枚举生成 + Literal字符串枚举(–enum-strings)

xsd片段:

<xs:simpleTypename="OrderStatus">    <xs:restrictionbase="xs:string">        <xs:enumerationvalue="NORMAL"/>        <xs:enumerationvalue="CLOSED"/>        <xs:enumerationvalue="CANCEL"/>    </xs:restriction></xs:simpleType>

生成命令启用字面量枚举:

xsdata demo.xsd --generator pydantic --enum-strings -o enum_models

生成代码为Literal["NORMAL", "CLOSED", "CANCEL"],无需导入Enum类,FastAPI接口直接识别。

案例6:大体积XML文件流式解析(内存优化)

百万级订单XML文件,一次性加载会OOM,使用流式迭代:

from xsdata_pydantic.bindings import XmlParserfrom schema_models.demo import OrderItemparser = XmlParser()# 逐行流式读取,单次只加载一条itemtotal = 0for item in parser.parse_stream("huge_orders.xml", OrderItem):    total += item.numprint(f"商品总数量:{total}")

案例7:结合FastAPI实现XML接口入参/出参

场景:HTTP接口接收XML报文,返回XML响应,复用xsdata-pydantic模型:

from fastapi import FastAPI, Bodyfrom xsdata_pydantic.bindings import XmlParser, XmlSerializerfrom schema_models.demo import Orderapp = FastAPI()parser = XmlParser()serializer = XmlSerializer()@app.post("/order/xml")async def receive_order(xml_body: str = Body(media_type="application/xml")):    # XML解析为Pydantic模型,自动校验XSD规则    order = parser.from_string(xml_body, Order)    # 业务逻辑修改    order.status = "CLOSED"    # 模型转回XML返回    resp_xml = serializer.to_string(order, pretty_print=True)    return {"xml_result": resp_xml}

案例8:自定义生成配置(pyproject.toml持久化参数)

不用每次敲长命令,在项目根目录pyproject.toml配置全局xsdata参数:

[tool.xsdata]generator = "pydantic"package = "biz_schemas"camel-case-fields = truepydantic-version = "v2"strict-types = truexml-declaration = truepretty-print = true

之后直接简化命令:

xsdata ./xsd/

五、常见错误、报错原因与解决方案

1. 执行xsdata提示 generator pydantic not found

  • 原因:未安装xsdata-pydantic,仅装了xsdata核心包
  • 解决:pip install xsdata-pydantic

2. 模型导入报错 cannot import name 'BaseModel' from 'pydantic'

  • 原因:xsdata-pydantic版本与pydantic版本不匹配(v2插件生成v1代码或反之)
  • 解决: 
    • Pydantic2:安装新版 xsdata-pydantic>=23
    • Pydantic1:锁定低版本 xsdata-pydantic==22.12 pydantic==1.10
    • 生成时强制指定 --pydantic-version v2

3. XML解析报错 Unknown field 'xxx' for model X

  • 原因1:XML标签驼峰,模型字段下划线,未开启--camel-case-fields 解决:重新生成时增加参数--camel-case-fields
  • 原因2:命名空间不匹配,xmlns与xsd targetNamespace不一致 解决:解析时传入命名空间映射,或修正XML命名空间前缀

4. 可选字段解析出现 None 但Pydantic抛类型错误

  • 原因:未开启--strict-types,xsd minOccurs=0字段未生成 T | None
  • 解决:生成命令添加--strict-types

5. 导出XML缺少头部 <?xml version="1.0"?>

  • 原因:序列化未开启xml声明,生成缺少--xml-declaration
  • 解决:序列化时传参xml_declaration=True,或生成配置开启

6. 数值/日期解析失败(Decimal、datetime转换报错)

  • 原因:xsd decimal类型默认映射Python Decimal,直接传float精度丢失;日期格式不匹配
  • 解决: 
    1. 价格字段使用decimal.Decimal传入,不要用float
    2. 生成时自定义日期格式 --date-format "%Y-%m-%d %H:%M:%S"

7. 重复数组items解析只有第一条,丢失多条数据

  • 原因:XSD maxOccurs="unbounded" 未识别,生成字段不是list
  • 解决:检查xsd标签层级,确保sequence包裹重复元素,重新生成模型

8. 远程XSD下载报错连接超时

  • 原因:xsdata默认无代理,网络无法访问外部xsd地址
  • 解决:手动下载xsd本地文件,再执行生成命令

六、关键使用注意事项

1. 版本兼容强制约束

  • Pydantic V2 推荐组合:xsdata>=23.7 + xsdata-pydantic>=23.7 + pydantic>=2.0
  • 禁止混用高低版本插件,会生成语法不兼容的模型代码

2. XSD编写规范

  • 复杂类型必须包裹<xs:sequence>,否则数组、可选字段识别异常;
  • 命名空间统一,多文件导入必须写正确targetNamespacexs:import namespace
  • 枚举优先使用--enum-strings,减少模型冗余类。

3. 性能优化

  • 超大XML必须使用parse_stream流式迭代,禁止from_string全量加载;
  • 生成模型时使用--ns-struct分层,避免单文件上万行代码加载缓慢;
  • 重复序列化场景全局复用XmlParser/XmlSerializer实例,不要重复初始化。

4. Pydantic特有限制

  • xsdata生成的模型不支持Pydantic ORM模式(无法直接对接SQLAlchemy,需手动转换);
  • XML属性(attribute)与子元素字段重名时,会自动添加后缀区分,避免冲突;
  • 加密二进制xsd base64字段自动映射bytes类型,序列化自动编解码。

5. 工程化规范

  1. 将xsd文件统一放入项目单独目录,纳入git版本管理;
  2. 使用pyproject.toml固化生成参数,统一团队代码生成规则;
  3. CI流水线自动执行xsdata生成,校验xsd修改后模型是否同步更新;
  4. 生成的schema模型添加.gitignore或自动重新生成,不手动修改自动生成代码。

6. 安全注意

  • 禁止解析不可信外部XML,lxml存在XXE注入风险,xsdata默认关闭外部实体;
  • 远程加载xsd仅信任内网可控地址,避免恶意外部schema注入。

《动手学PyTorch建模与应用:从深度学习到大模型》是一本从零基础上手深度学习和大模型的PyTorch实战指南。全书共11章,前6章涵盖深度学习基础,包括张量运算、神经网络原理、数据预处理及卷积神经网络等;后5章进阶探讨图像、文本、音频建模技术,并结合Transformer架构解析大语言模型的开发实践。书中通过房价预测、图像分类等案例讲解模型构建方法,每章附有动手练习题,帮助读者巩固实战能力。内容兼顾数学原理与工程实现,适配PyTorch框架最新技术发展趋势。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 17:10:17 HTTP/2.0 GET : https://f.mffb.com.cn/a/503402.html
  2. 运行时间 : 0.248531s [ 吞吐率:4.02req/s ] 内存消耗:4,892.64kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=52473dc0d75417e9b302916de9bdfdc9
  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.001227s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001750s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000833s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000874s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001454s ]
  6. SELECT * FROM `set` [ RunTime:0.000618s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001534s ]
  8. SELECT * FROM `article` WHERE `id` = 503402 LIMIT 1 [ RunTime:0.008842s ]
  9. UPDATE `article` SET `lasttime` = 1783156217 WHERE `id` = 503402 [ RunTime:0.018083s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.001007s ]
  11. SELECT * FROM `article` WHERE `id` < 503402 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001647s ]
  12. SELECT * FROM `article` WHERE `id` > 503402 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001335s ]
  13. SELECT * FROM `article` WHERE `id` < 503402 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002613s ]
  14. SELECT * FROM `article` WHERE `id` < 503402 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005769s ]
  15. SELECT * FROM `article` WHERE `id` < 503402 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.017196s ]
0.252911s