当前位置:首页>python>ArcGIS Pro Python二次开发入门教程

ArcGIS Pro Python二次开发入门教程

  • 2026-06-28 12:39:44
ArcGIS Pro Python二次开发入门教程

ArcGIS Pro Python二次开发入门教程

从零开始学习ArcGIS Pro自动化与定制开发

作者:闫神

2026年6月

目录

·第一章 ArcGIS Pro Python概述

·第二章 开发环境配置

·第三章 Python基础语法速成

·第四章 arcpy模块核心概念

·第五章 数据管理与处理

·第六章 地图文档自动化

·第七章 地理处理工具开发

·第八章 实战案例集锦

·附录 常用代码片段与资源 

第一章 ArcGIS Pro Python概述

1.1 什么是ArcGIS Pro Python

ArcGIS Pro内置了Python环境,提供强大的地理数据处理和自动化能力。通过Python脚本,用户可以实现数据处理自动化、批量操作、工具定制等功能。

1.2 为什么学习ArcGIS Pro Python

·自动化重复性工作,提高工作效率

·批量处理大量数据,节省时间成本

·开发定制工具,满足特定业务需求

·集成第三方库,扩展GIS功能

·构建工作流模型,实现智能化处理

1.3 ArcGIS Pro Python的特点

ArcGIS Pro使用Python 3.x版本,内置arcpy模块,提供了丰富的GIS功能接口。与ArcMap时代的Python 2.x不同,Pro环境更加现代化,支持更多新特性。

第二章 开发环境配置

2.1 ArcGIS Pro内置Python环境

ArcGIS Pro自带独立的Python环境,无需额外安装。通过以下方式访问:

1.开始菜单 → ArcGIS → Python Command Prompt

2.ArcGIS Pro菜单 → Geoprocessing → Python

3.ArcGIS Pro菜单 → Geoprocessing → Jupyter Notebooks

2.2 配置独立的Python开发环境

推荐使用ArcGIS Pro的Python环境克隆功能创建独立开发环境:

# 克隆Python环境          # 在ArcGIS Pro中:Project → Python → Manage Environments          # 或使用conda命令:          conda create --clone arcgispro-py3 --name my-env

2.3 集成开发环境(IDE)推荐

·PyCharm:功能强大的Python IDE,支持代码补全、调试等功能

·Visual Studio Code:轻量级编辑器,安装Python扩展后功能完善

·Spyder:科学计算友好,内置变量浏览器

·Jupyter Notebook:交互式编程,适合数据探索和可视化

第三章 Python基础语法速成

3.1 变量与数据类型

# 字符串          name = "ArcGIS Pro"          path = r"C:\Data\shapefile.shp"# 原始字符串          # 数字          count = 100          area = 125.5          # 布尔值          is_valid = True          has_data = False

3.2 列表与字典

# 列表          files = ["a.shp", "b.shp", "c.shp"]          files.append("d.shp")          first_file = files[0]          # 字典          params = {          "input": "data.shp",          "output": "result.shp",          "distance": 100          }

3.3 条件与循环

# 条件判断          if count > 0:          print("有数据")          else:          print("无数据")          # 循环          for file in files:          print(file)          for i in range(10):          print(i)

3.4 函数定义

# 定义函数          def buffer_feature(input_fc, distance):          """缓冲区分析"""          output = input_fc.replace(".shp", "_buffer.shp")          arcpy.Buffer_analysis(input_fc, output, distance)          return output

第四章 arcpy模块核心概念

4.1 arcpy模块简介

arcpy是ArcGIS的核心Python模块,提供了访问地理处理工具、数据管理、地图自动化等功能的编程接口。

4.2 导入arcpy模块

import arcpy          # 设置工作环境          arcpy.env.workspace = r"C:\Data"          arcpy.env.overwriteOutput = True

4.3 环境设置

arcpy.env包含多个重要的环境变量:

·workspace:默认工作空间路径

·overwriteOutput:是否覆盖已存在的输出

·outputCoordinateSystem:输出坐标系

·extent:处理范围

·cellSize:栅格像元大小

4.4 工具执行方式

# 方法1:直接调用          arcpy.Buffer_analysis("input.shp", "output.shp", "100 Meters")          # 方法2:使用工具箱名称          arcpy.analysis.Buffer("input.shp", "output.shp", "100 Meters")

第五章 数据管理与处理

5.1 要素类操作

5.1.1 列出要素类

import arcpy          arcpy.env.workspace = r"C:\Data\Geodatabase.gdb"          # 列出所有要素类          fcs = arcpy.ListFeatureClasses()          for fc in fcs:          print(fc)

5.1.2 创建要素类

# 创建新的要素类          arcpy.management.CreateFeatureclass(          out_path=r"C:\Data\Geodatabase.gdb",          out_name="NewFeature",          geometry_type="POINT",          spatial_reference=arcpy.SpatialReference(4326)          )

5.1.3 添加字段

# 添加字段          arcpy.management.AddField(          in_table="NewFeature",          field_name="Name",          field_type="TEXT",          field_length=50          )

5.2 游标操作

游标用于读取和编辑要素属性和几何信息:

5.2.1 搜索游标

# 搜索游标 - 只读          with arcpy.da.SearchCursor("cities.shp", ["NAME", "POPULATION"]) as cursor:          for row in cursor:          print(f"城市: {row[0]}, 人口: {row[1]}")

5.2.2 更新游标

# 更新游标 - 修改数据          with arcpy.da.UpdateCursor("cities.shp", ["POPULATION"]) as cursor:          for row in cursor:          if row[0] > 1000000:          row[0] = row[0] * 1.1# 人口增长10%          cursor.updateRow(row)

5.2.3 插入游标

# 插入游标 - 添加新要素          fields = ["SHAPE@", "NAME", "POPULATION"]          with arcpy.da.InsertCursor("cities.shp", fields) as cursor:          point = arcpy.Point(116.4, 39.9)          cursor.insertRow([point, "北京", 21700000])

5.3 几何对象操作

# 创建点几何          point = arcpy.Point(116.4, 39.9)          point_geometry = arcpy.PointGeometry(point)          # 创建多点          points = [arcpy.Point(0, 0), arcpy.Point(1, 1), arcpy.Point(2, 2)]          multipoint = arcpy.Multipoint(arcpy.Array(points))          # 创建线          array = arcpy.Array([arcpy.Point(0, 0), arcpy.Point(1, 1)])          line = arcpy.Polyline(array)          # 创建面          array = arcpy.Array([          arcpy.Point(0, 0),          arcpy.Point(1, 0),          arcpy.Point(1, 1),          arcpy.Point(0, 1),          arcpy.Point(0, 0)# 闭合          ])          polygon = arcpy.Polygon(array)

第六章 地图文档自动化

6.1 APRX文件操作

ArcGIS Pro使用.aprx格式的工程文件,通过arcpy.mp模块可以自动化操作地图文档。

6.1.1 打开工程文件

import arcpy.mp          # 打开工程          aprx = arcpy.mp.ArcGISProject(r"C:\Data\MyProject.aprx")          # 获取地图          maps = aprx.listMaps()[0]          print(f"地图名称: {map.name}")

6.1.2 添加图层

# 添加图层到地图          layer_file = r"C:\Data\layers\roads.lyrx"          layer = map.addDataFromPath(layer_file)          # 或者          map.addDataFromPath(r"C:\Data\roads.shp")

6.1.3 导出地图

# 导出为PDF          layout = aprx.listLayouts()[0]          layout.exportToPDF(r"C:\Output\map.pdf")          # 导出为图片          layout.exportToPNG(r"C:\Output\map.png")

6.2 布局操作

# 获取布局          layout = aprx.listLayouts("主布局")[0]          # 修改布局元素          for elem in layout.listElements():          if elem.name == "标题":          elem.text = "新标题"          if elem.name == "比例尺":          elem.scale = 50000

6.3 批量导出地图

# 批量导出多个地图          aprx = arcpy.mp.ArcGISProject(r"C:\Data\Project.aprx")          for map in aprx.listMaps():          print(f"处理地图: {map.name}")          for layout in aprx.listLayouts():          if map.name in layout.name:          output_path = f"C:\Output\{layout.name}.pdf"          layout.exportToPDF(output_path)

第七章 地理处理工具开发

7.1 创建自定义工具

可以将Python脚本封装为ArcGIS工具箱中的工具:

7.1.1 工具脚本模板

import arcpy          class ToolClass:          def __init__(self):          self.label = "工具名称"          self.description = "工具描述"          self.canRunInBackground = False          def getParameterInfo(self):          """定义工具参数"""          params = []          # 输入要素          param1 = arcpy.Parameter(          displayName="输入要素",          name="input_features",          datatype="GPFeatureLayer",          parameterType="Required",          direction="Input"          )          params.append(param1)          return params          def execute(self, parameters, messages):          """执行工具"""          input_fc = parameters[0].valueAsText          # 处理逻辑...          return

7.1.2 参数类型

·GPFeatureLayer:要素图层

·GPString:字符串

·GPDouble:双精度浮点数

·GPLong:长整型

·GPBoolean:布尔值

·DEShapefile:Shapefile

·DEFeatureClass:要素类

·DERasterDataset:栅格数据集

7.2 错误处理与消息

import arcpy          try:          # 执行地理处理          arcpy.Buffer_analysis("input.shp", "output.shp", "100 Meters")          arcpy.AddMessage("处理成功!")          except arcpy.ExecuteError:          arcpy.AddError(arcpy.GetMessages(2))          except Exception as e:          arcpy.AddError(f"发生错误: {str(e)}")

第八章 实战案例集锦

8.1 批量缓冲区分析

# 批量对多个要素类进行缓冲区分析          import arcpy          import os          arcpy.env.workspace = r"C:\Data\Input"          arcpy.env.overwriteOutput = True          output_folder = r"C:\Data\Buffer"          buffer_distance = "500 Meters"          # 获取所有要素类          fcs = arcpy.ListFeatureClasses()          for fc in fcs:          output = os.path.join(output_folder, f"{fc[:-4]}_buffer.shp")          arcpy.Buffer_analysis(fc, output, buffer_distance)          print(f"完成: {fc} -> {os.path.basename(output)}")

8.2 属性数据批量更新

# 批量更新属性字段          import arcpy          fc = r"C:\Data\cities.shp"          fields = ["POPULATION", "DENSITY", "CLASS"]          with arcpy.da.UpdateCursor(fc, fields) as cursor:          for row in cursor:          population = row[0]          area = 100# 假设面积          # 计算密度          row[1] = population / area          # 分类          if population > 1000000:          row[2] = "特大城市"          elif population > 100000:          row[2] = "大城市"          else:          row[2] = "中小城市"          cursor.updateRow(row)

8.3 批量裁剪

# 批量裁剪多个数据集          import arcpy          import os          input_folder = r"C:\Data\Input"          output_folder = r"C:\Data\Output"          clip_features = r"C:\Data\boundary.shp"          arcpy.env.workspace = input_folder          arcpy.env.overwriteOutput = True          # 裁剪所有要素类          fcs = arcpy.ListFeatureClasses()          for fc in fcs:          output = os.path.join(output_folder, f"{fc[:-4]}_clip.shp")          arcpy.analysis.Clip(fc, clip_features, output)          print(f"已裁剪: {fc}")

8.4 自动生成地图册

# 批量生成地图册          import arcpy          import os          # 打开工程          aprx = arcpy.mp.ArcGISProject(r"C:\Data\MapBook.aprx")          layout = aprx.listLayouts("主布局")[0]          map = aprx.listMaps("主地图")[0]          # 获取索引图层          index_layer = map.listLayers("索引")[0]          output_folder = r"C:\Output\MapBook"          # 遍历每个要素          with arcpy.da.SearchCursor(index_layer, ["PageName", "SHAPE@"]) as cursor:          for row in cursor:          page_name = row[0]          extent = row[1].extent          # 设置地图范围          map.defaultCamera.setExtent(extent)          # 更新标题文本元素          for elem in layout.listElements("TEXT_ELEMENT"):          if elem.name == "标题":          elem.text = f"区域: {page_name}"          # 导出PDF          output_pdf = os.path.join(output_folder, f"{page_name}.pdf")          layout.exportToPDF(output_pdf)          print(f"已导出: {page_name}")

8.5 数据格式转换

# 批量转换Shapefile到Geodatabase          import arcpy          import os          input_folder = r"C:\Data\Shapefiles"          output_gdb = r"C:\Data\Geodatabase.gdb"          arcpy.env.workspace = input_folder          arcpy.env.overwriteOutput = True          # 转换所有Shapefile          fcs = arcpy.ListFeatureClasses()          for fc in fcs:          output_fc = os.path.join(output_gdb, fc[:-4])          arcpy.conversion.FeatureClassToFeatureClass(          fc, output_gdb, fc[:-4]          )          print(f"已转换: {fc}")

附录 常用代码片段与资源

A. 常用代码片段

A.1 检查文件是否存在

import arcpy          import os          fc = r"C:\Data\test.shp"          if arcpy.Exists(fc):          print("文件存在")          else:          print("文件不存在")

A.2 获取要素数量

fc = r"C:\Data\cities.shp"          count = int(arcpy.management.GetCount(fc).getOutput(0))          print(f"要素数量: {count}")

A.3 描述数据属性

fc = r"C:\Data\cities.shp"          desc = arcpy.da.Describe(fc)          print(f"数据类型: {desc['dataType']}")          print(f"几何类型: {desc['shapeType']}")          print(f"坐标系: {desc['spatialReference'].name}")

A.4 获取字段列表

fc = r"C:\Data\cities.shp"          fields = [f.name for f in arcpy.ListFields(fc)]          print("字段列表:", fields)

A.5 进度显示

import arcpy          arcpy.SetProgressor("step", "处理中...", 0, 100, 1)          for i in range(100):          # 执行操作          arcpy.SetProgressorPosition(i)          arcpy.ResetProgressor()

B. 学习资源

·ArcGIS Pro官方文档https://pro.arcgis.com/zh-cn/pro-app/latest/arcpy/main/arcgis-pro-arcpy-reference.htm

·Esri中国官网https://www.esri.com/zh-cn

·ArcGIS API for Pythonhttps://developers.arcgis.com/python/

·GIS Stack Exchangehttps://gis.stackexchange.com/

·Esri社区https://community.esri.com/

C. 调试技巧

4.使用print()或arcpy.AddMessage()输出调试信息

5.使用try-except捕获异常并输出详细错误信息

6.使用arcpy.GetMessages()获取地理处理工具的详细消息

7.在Python窗口中逐行测试代码

8.使用断点调试功能(在支持的IDE中) 

结语

恭喜您完成ArcGIS Pro Python二次开发入门学习!通过本教程,您已经掌握了:

·ArcGIS Pro Python环境配置与基础语法

·arcpy模块的核心概念与使用方法

·数据管理与处理的基本操作

·地图文档自动化技术

·自定义工具开发方法

·实战案例的应用

继续深入学习,探索更多高级功能,让Python成为您GIS工作的得力助手!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 04:01:07 HTTP/2.0 GET : https://f.mffb.com.cn/a/499051.html
  2. 运行时间 : 0.150900s [ 吞吐率:6.63req/s ] 内存消耗:4,850.12kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=b7ecf77c2c718480b692ff5d61fb7f38
  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.000887s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001510s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000630s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000519s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001176s ]
  6. SELECT * FROM `set` [ RunTime:0.000444s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001223s ]
  8. SELECT * FROM `article` WHERE `id` = 499051 LIMIT 1 [ RunTime:0.001125s ]
  9. UPDATE `article` SET `lasttime` = 1783022467 WHERE `id` = 499051 [ RunTime:0.001892s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000564s ]
  11. SELECT * FROM `article` WHERE `id` < 499051 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001363s ]
  12. SELECT * FROM `article` WHERE `id` > 499051 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.007596s ]
  13. SELECT * FROM `article` WHERE `id` < 499051 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.003038s ]
  14. SELECT * FROM `article` WHERE `id` < 499051 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002350s ]
  15. SELECT * FROM `article` WHERE `id` < 499051 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001993s ]
0.153709s