当前位置:首页>python>用Python做一个世界大战的模拟器,核心逻辑+所需库全解析

用Python做一个世界大战的模拟器,核心逻辑+所需库全解析

  • 2026-03-22 22:46:21
用Python做一个世界大战的模拟器,核心逻辑+所需库全解析

最近世界大战模拟器特别火热,网上有很多有趣的视频,我在网上下载了好几个游戏版本,试用后发现大多不尽如人意——要么功能太简陋,要么推演逻辑不严谨,体验感很差。于是我决定自己动手,用Python打造一款更实用、更贴合真实逻辑的世界大战模拟器。和单纯的娱乐游戏不同,这款模拟器更侧重“策略推演”,既能模拟国家间的兵力部署、资源争夺、外交博弈,还能完整还原一场战争从爆发、胶着到最终结束的全过程。

很多人听到“模拟器”就觉得复杂,其实只要理清核心逻辑,用好Python的几个关键库,新手也能一步步实现。本文不堆砌大量代码,重点拆解实现过程、讲解所需库的作用,全程通俗易懂,哪怕你是Python入门级选手,也能看懂每一步的逻辑,甚至能跟着思路搭建属于自己的简化版模拟器。

先说明一下:这个模拟器的核心是“数据驱动+规则推演”,不追求极致的军事精准度(毕竟专业军事模拟需要军方级别的数据支撑),但能还原世界大战的核心要素——国家、兵力、资源、战争行为、外交关系,适合作为Python实战项目,既能锻炼代码能力,又能体验策略推演的乐趣。全文约3000字,耐心看完,你会收获一个完整的项目思路。

一、先明确:我们的世界大战模拟器,要实现什么?

在动手之前,必须先明确模拟器的核心功能,避免盲目开发。结合Python的特性和实战可行性,我们的模拟器主要实现以下5个核心功能,覆盖世界大战的全流程:

1.国家建模:创建多个独立国家,每个国家有专属属性(人口、兵力、资源、科技水平、外交立场),比如A国人口多、资源少,B国科技强、兵力少,这些属性会直接影响战争走向;

2.资源管理:模拟国家的资源生产(石油、钢铁、粮食),资源是支撑战争的核心——没有钢铁无法造武器,没有粮食无法维持兵力,资源耗尽则国家战败;

3.  战争推演:实现国家间的宣战、进攻、防御、兵力损耗计算,比如A国宣战B国后,根据双方兵力、科技水平计算战损,模拟战场局势变化;

4.外交博弈:模拟国家间的结盟、断交、中立,比如A国和C国结盟后,C国会在A国被攻击时出兵支援,中立国则不参与任何战争行为;

5.可视化展示用图表呈现战争进程,比如兵力变化曲线、资源消耗趋势、战场局势分布图,让模拟结果更直观,也更符合今日头条读者的阅读习惯。

明确了核心功能,接下来就是拆解实现步骤,以及选择合适的Python库——好的库能帮我们节省80%的开发时间,不用从零编写复杂的逻辑。

二、核心所需库:5个库搞定全部功能,不用多装冗余工具

很多新手做项目时,容易陷入“装一堆库却用不上”的误区。我们这个模拟器,只需要5个核心Python库,每个库各司其职,覆盖建模、计算、可视化全流程,且都是Python生态中成熟、易上手的库,安装简单(用pip就能直接安装)。

下面逐个讲解每个库的作用、安装方法,以及在模拟器中具体用在哪里,全程不涉及复杂代码,只讲实用逻辑。

1.核心库1:Pandas——数据管理的“万能工具”

作用】:管理模拟器中所有的结构化数据,比如国家属性数据(人口、兵力、资源)、战争数据(战损、资源消耗)、外交关系数据(盟友、敌对国家)。简单说,Pandas就像一个“电子表格”,能快速存储、查询、修改数据,是模拟器的数据核心。

安装命令】:pip install pandas(直接执行,无需额外配置)

在模拟器中的具体应用】:

- 存储国家信息:用DataFrame创建表格,每一行代表一个国家,列代表国家属性(国家名称、人口、初始兵力、石油储量、钢铁储量、科技水平、外交立场),比如“美国”一行,人口3.3亿、初始兵力150万、石油储量1000单位、科技水平8(1-10分);

- 实时更新数据:战争过程中,兵力会减少、资源会消耗,用Pandas能快速更新这些数据,比如A国进攻B国后,A国兵力减少5万,B国兵力减少8万,直接用Pandas修改对应行的“兵力”列即可;

- 数据筛选查询:比如筛选出“科技水平≥8”的国家、“资源耗尽”的国家,方便后续判断战争走向(资源耗尽的国家直接判定战败)。

Pandas的优势的是操作简单,哪怕你不懂复杂的数据分析,只要会基础的DataFrame操作,就能搞定模拟器的所有数据管理工作,是这个项目的“基石”。

2.核心库2:NumPy——数值计算的“加速器”

【作用】:处理模拟器中的所有数值计算,比如兵力损耗计算、资源生产计算、战争胜率预测。Python自带的计算功能较慢,NumPy能大幅提升计算效率,尤其是模拟大规模战争(比如10个以上国家同时交战)时,不会出现卡顿。

【安装命令】:pip install numpy(通常和Pandas一起安装,很多环境会自动配套)

【在模拟器中的具体应用】:

- 兵力损耗计算:战争的战损不是固定的,需要根据双方兵力、科技水平、地形等因素计算,比如用NumPy的随机函数模拟“战场不确定性”,A国科技水平8,B国科技水平6,A国的战损率会比B国低20%,用NumPy能快速计算出双方的具体损耗人数;

- 资源生产计算:每个国家的资源生产速度不同,比如石油每天生产10单位,钢铁每天生产15单位,用NumPy的数组运算,能快速计算出多个国家每天的资源增量,以及总资源储量;

- 胜率预测:根据双方的兵力、科技、资源差距,用NumPy计算出进攻方的胜率,比如A国兵力200万、科技8,B国兵力150万、科技6,A国的胜率约为65%,为战争推演提供逻辑支撑。

简单说,NumPy就是模拟器的“计算器”,所有和数字相关的逻辑,都靠它来高效完成,避免手动编写复杂的计算公式,减少出错概率。

3.核心库3:Matplotlib——可视化的“展示窗口”

【作用】:将模拟器的运行过程和结果可视化,比如绘制兵力变化曲线、资源消耗柱状图、战场局势热力图。今日头条的读者更喜欢直观的图表,而非枯燥的数字,Matplotlib能让我们的模拟器更具观赏性和可读性。

【安装命令】:pip install matplotlib(安装简单,无需额外依赖)

【在模拟器中的具体应用】:

- 兵力变化曲线:绘制每个国家在战争期间的兵力变化,比如A国从150万兵力逐步减少到50万,B国从100万减少到0,曲线能清晰呈现战争的激烈程度;

- 资源消耗趋势:用柱状图展示每个国家每天的资源消耗,比如石油、钢铁的消耗速度,方便判断哪个国家先会因资源耗尽而战败;

- 战场局势图:用热力图展示战场的兵力分布,红色代表兵力密集区(主战场),蓝色代表兵力薄弱区,直观呈现战争的推进方向。

Matplotlib的优势是灵活,能根据需求绘制各种类型的图表,而且代码简洁,哪怕是新手,也能快速画出美观的可视化图表,让模拟器的结果更有说服力。

4.核心库4:NetworkX——外交关系的“连接器”

【作用】:模拟国家间的外交关系(结盟、断交、中立),用图结构展示国家间的关联,比如A国和C国是盟友,B国和D国是盟友,A国与B国是敌对关系,这些关系能通过NetworkX的图结构快速管理和查询。

【安装命令】:pip install networkx(轻量级库,安装速度快)

【在模拟器中的具体应用】

- 构建外交网络:用节点代表国家,用边代表外交关系(实线代表盟友,虚线代表敌对,无连线代表中立),比如添加一条A国到C国的实线,代表两国结盟;

- 外交关系查询:快速查询某个国家的盟友和敌对国家,比如查询A国的盟友,NetworkX能直接返回所有与A国用实线连接的节点(国家);

- 外交事件触发:比如A国被B国攻击时,NetworkX会自动找到A国的所有盟友,触发“盟友支援”事件,盟友会派出兵力支援A国。

没有NetworkX,我们很难高效管理多个国家的外交关系,尤其是当国家数量较多(比如10个以上)时,手动判断盟友和敌对关系会非常繁琐,而NetworkX能帮我们一键搞定。

5.辅助库:Random——模拟“不确定性”

【作用】:模拟战争中的随机事件,让模拟器更贴近现实——现实中的战争充满不确定性,比如突然的暴雨影响进攻、武器故障导致战损增加、外交谈判突然破裂等,这些都能用Random库来实现。

【安装说明】:Python自带库,无需额外安装,直接导入即可使用

【在模拟器中的具体应用】:

- 随机事件触发:比如每轮战争有10%的概率触发“暴雨”事件,进攻方的战损率增加15%;有5%的概率触发“武器升级”事件,防守方的战损率降低10%;

- 外交随机变化:比如两个中立国家,有8%的概率结盟,有3%的概率突然断交,增加模拟器的趣味性和不可预测性;

- 资源随机波动:比如某个国家的石油生产,有15%的概率出现“资源减产”(产量减少50%),有5%的概率出现“资源暴涨”(产量增加100%)。

Random库虽然简单,但能让我们的模拟器摆脱“机械推演”的局限,变得更真实、更有趣,避免每次模拟的结果都一样。

总结一下:5个库分工明确,Pandas管数据、NumPy做计算、Matplotlib搞可视化、NetworkX理外交、Random加随机,缺一不可,但都非常易上手,安装和使用都没有难度,新手可以放心尝试。

三、模拟器实现全过程:5个步骤,从0到1搭建完成

明确了核心功能和所需库,接下来就是最关键的实现过程。我们将整个过程拆解为5个步骤,每个步骤只讲核心逻辑,不堆砌代码,确保大家能看懂、能跟着落地,全程贴合3000字要求,不冗余、不拖沓。

注意:以下步骤是“简化版实战思路”,适合新手入门;如果想做更复杂的模拟器(比如加入地形、天气、核武器等元素),可以在这个基础上扩展,后续会给大家分享扩展思路。

步骤1:搭建项目框架,导入所需库

首先,创建一个Python文件(比如world_war_simulator.py),然后导入我们刚才提到的5个核心库,这是项目的基础。

核心逻辑:导入库后,定义一个“世界大战模拟器”类(Class),将所有功能(国家建模、资源管理、战争推演等)封装在类中,这样后续调用和修改都更方便,也符合Python的面向对象编程思想。

这里不用写具体代码,大家只要知道:类的作用是“整合所有功能”,比如类中会包含“创建国家”“资源生产”“发起战争”“外交结盟”等方法,后续每个步骤,都是在完善这个类的功能。

小技巧:新手可以先不封装类,先逐个实现单个功能(比如先实现国家建模,再实现资源管理),熟悉后再封装成类,降低难度。

步骤2:国家建模,创建初始国家数据

国家是模拟器的核心主体,这一步的核心是“给每个国家赋予专属属性”,并用Pandas管理这些数据,为后续的战争推演打下基础。

核心逻辑分为3步:

1.确定国家属性:结合战争逻辑,我们给每个国家设定8个核心属性,缺一不可:

- 基础属性:国家名称(如中国、美国、俄罗斯、德国)、人口(影响兵力补充速度,人口越多,兵力补充越快);

- 军事属性:初始兵力(战争的核心力量)、科技水平(1-10分,影响战损率和武器威力);

- 资源属性:石油储量(支撑兵力调动、武器生产)、钢铁储量(支撑武器生产)、粮食储量(支撑兵力维持,粮食耗尽,兵力会每天减少);

- 外交属性:外交立场(中立、友好、敌对,初始默认中立)。

2.创建国家数据:用Pandas的DataFrame创建表格,录入3-8个国家的初始数据(国家数量不宜过多,新手建议先从3个国家开始,比如A国、B国、C国,熟悉后再增加)。

比如初始数据可以这样设定(简化版):

A国:人口3亿,初始兵力150万,科技水平8,石油800单位,钢铁1000单位,粮食600单位,外交立场中立;

B国:人口2亿,初始兵力120万,科技水平7,石油600单位,钢铁800单位,粮食500单位,外交立场中立;

C国:人口1.5亿,初始兵力80万,科技水平9,石油500单位,钢铁600单位,粮食400单位,外交立场中立。

3.初始化外交网络:用NetworkX创建图结构,将每个国家作为节点,初始时所有国家之间无连线(中立关系),后续通过“结盟”“断交”操作添加或删除连线。

这一步的关键是“数据完整”,每个国家的属性要合理,不能出现“科技水平10但资源为0”的不合理情况,否则会导致后续战争推演出现逻辑错误。

步骤3:资源管理逻辑,模拟资源生产与消耗

资源是战争的“生命线”,没有资源,再强大的兵力也无法维持,这一步的核心是“模拟资源的生产和消耗”,确保资源变化符合战争逻辑。

核心逻辑分为2部分:资源生产、资源消耗,均用NumPy和Pandas实现:

1.资源生产:每个国家每天会自动生产一定数量的资源,生产速度由国家属性决定,比如科技水平越高,资源生产速度越快。

比如设定规则:

- 石油生产速度 = 科技水平 × 10(单位/天),A国科技8,每天生产80单位石油;

- 钢铁生产速度 = 科技水平 × 15(单位/天),A国每天生产120单位钢铁;

- 粮食生产速度 = 人口(亿) × 200(单位/天),A国人口3亿,每天生产600单位粮食。

用NumPy计算每个国家的资源增量,再用Pandas更新到国家数据表格中,实现“每天自动生产资源”的逻辑。

2.资源消耗:资源消耗主要分为两部分——日常消耗(维持兵力)、战争消耗(发起进攻、防御)。

- 日常消耗:每天消耗的资源与兵力成正比,比如每1万兵力,每天消耗10单位石油、15单位钢铁、20单位粮食;A国150万兵力,每天日常消耗1500单位石油、2250单位钢铁、3000单位粮食;

- 战争消耗:发起进攻或防御时,资源消耗翻倍,比如A国进攻B国时,当天的石油、钢铁消耗增加100%,粮食消耗增加50%;

- 资源耗尽处理:如果某个国家的石油、钢铁、粮食中任意一种资源耗尽,兵力会每天减少10%(无法维持兵力),直到兵力为0,该国家战败,退出模拟器。

这里可以用Random库添加随机波动,比如每天有10%的概率,资源消耗增加20%(模拟资源短缺),让资源管理更具不确定性。

步骤4:战争推演核心逻辑,模拟宣战、进攻与战损

战争推演是模拟器的核心,这一步的逻辑最复杂,但只要理清“宣战条件→战损计算→结果判定”三个环节,就能轻松实现,全程用NumPy和Random库支撑。

核心逻辑拆解为3个环节:

1.宣战条件:设定合理的宣战规则,避免国家随意宣战,让模拟更贴近现实。

比如设定3个宣战条件(满足任意一个即可宣战):

- 资源争夺:A国的石油储量低于200单位,且B国的石油储量高于A国的2倍,A国有60%的概率向B国宣战;

- 外交触发:A国与C国结盟后,若B国向C国宣战,A国会自动向B国宣战(盟友支援);

- 随机宣战:每个国家每天有5%的概率,向任意一个中立国家宣战(模拟突发战争)。

宣战操作会修改NetworkX的外交网络,比如A国向B国宣战,就在两者之间添加一条“敌对”边(虚线),后续两者会持续交战,直到一方战败或议和。

2.战损计算:战损不是固定数值,由双方的兵力、科技水平、资源状况共同决定,用NumPy计算,用Random添加随机波动。

设定战损计算规则(简化版,新手可直接套用):

- 进攻方战损率 = (防守方科技水平 / 进攻方科技水平)× 0.1 + 随机值(0.05-0.15);

- 防守方战损率 = (进攻方科技水平 / 防守方科技水平)× 0.1 + 随机值(0.05-0.15);

- 实际战损人数 = 兵力 × 战损率(向下取整)。

比如A国(进攻方,科技8,兵力150万)向B国(防守方,科技7,兵力120万)宣战:

A国战损率 = (7/8)×0.1 + 0.1 = 0.1875,实际战损 = 150万 × 0.1875 ≈ 28万;

B国战损率 = (8/7)×0.1 + 0.08 = 0.194,实际战损 = 120万 × 0.194 ≈ 23万;

计算完成后,用Pandas更新双方的兵力数据,同时扣除战争消耗的资源。

3.战争结果判定:每轮战争结束后,判断双方是否战败,直到出现“唯一胜利者”或“多方停战”。

设定3种结果:

- 一方战败:若A国兵力为0,或资源全部耗尽,A国战败,退出战争,其剩余资源被战胜国(B国)掠夺;

- 双方停战:若双方兵力都低于初始兵力的30%,且资源耗尽超过50%,双方有80%的概率停战,恢复中立关系;

- 持续交战:若双方都未战败、未停战,下一轮继续交战,直到出现上述两种结果。

步骤5:外交博弈与可视化,完善模拟器的体验

这一步是“锦上添花”,既能让模拟器更贴近现实,又能让模拟结果更直观,适合在今日头条展示,提升阅读体验。

1.外交博弈逻辑(用NetworkX实现):

除了宣战、支援,还可以添加3种外交操作,让外交关系更丰富:

- 结盟:两个中立国家,若资源互补(比如A国石油多、钢铁少,C国钢铁多、石油少),有15%的概率结盟,结盟后双方资源可以互相支援(每天互相赠送10%的资源);

- 断交:两个盟友国家,若一方拒绝支援另一方,有20%的概率断交,恢复中立关系,不再互相支援;

- 中立求和:战败国可以向战胜国求和,若战胜国同意,双方恢复中立关系,战败国向战胜国缴纳50%的剩余资源。

这些操作都会实时更新NetworkX的外交网络,让外交关系动态变化,增加模拟器的趣味性。

2.可视化展示(用Matplotlib实现):

为了让模拟结果更直观,我们可以绘制3种核心图表,适合在今日头条文章中展示:

- 兵力变化曲线图:横轴为“模拟天数”,纵轴为“兵力数量”,每条曲线代表一个国家,清晰展示各国兵力的变化趋势,比如A国兵力逐步下降,B国兵力先降后升,最终获胜;

- 资源消耗柱状图:横轴为“国家”,纵轴为“资源总消耗”,展示每个国家在战争期间的石油、钢铁、粮食总消耗,能直观看出哪个国家的资源消耗最大;

- 外交关系图:用NetworkX绘制节点图,节点大小代表国家兵力,实线代表盟友,虚线代表敌对,无连线代表中立,展示战争期间外交关系的变化。

此外,还可以添加“模拟日志”,用print函数输出每天的关键事件,比如“第10天,A国向B国宣战,A国战损28万,B国战损23万”“第20天,C国与A国结盟,向B国出兵支援”,让模拟过程更清晰。

四、项目扩展思路+常见问题解决

以上5个步骤,就能实现一个基础版的世界大战模拟器,适合新手入门。如果想让模拟器更复杂、更真实,可以参考以下扩展思路,后续也可以单独出一篇详细教程:

1.增加更多元素:加入地形(平原、山地、海洋,山地会增加战损率)、天气(暴雨、暴雪、晴天,影响进攻效率)、核武器(终极武器,能瞬间摧毁敌方50%的兵力和资源);

2.优化AI逻辑:让国家具备“策略性”,比如弱国会主动结盟,强国会优先攻击弱国,避免“无脑宣战”;

3.增加交互功能:用Tkinter库做一个简单的界面,让用户可以手动选择国家、发起宣战、进行外交操作,不用运行代码就能体验模拟器;

4.数据可视化升级:用Plotly库替代Matplotlib,绘制交互式图表,用户可以点击图表查看具体数据(比如点击兵力曲线,查看某一天的具体兵力)。

常见问题解决(新手必看):

1.库安装失败:如果安装Matplotlib、NetworkX时失败,先升级pip(pip install --upgrade pip),再重新安装,若仍失败,百度搜索“对应库安装失败解决方法”,大概率是缺少系统依赖;

2.模拟逻辑出错:比如资源消耗后没有更新、战损计算异常,大概率是数据类型错误(比如兵力用了字符串类型),检查Pandas表格的数据类型,确保所有数值都是int或float类型;

3.模拟器卡顿:如果国家数量过多(比如10个以上),模拟速度变慢,可优化NumPy的计算逻辑,减少循环次数,或者减少国家数量;

4.可视化图表不显示:检查Matplotlib的代码,确保调用了plt.show()函数,若仍不显示,重启Python环境,或重新安装Matplotlib。

五、总结:新手也能落地的Python实战项目

用Python做世界大战模拟器,核心不是“写复杂代码”,而是“理清逻辑+用好工具”。我们用5个核心库(Pandas、NumPy、Matplotlib、NetworkX、Random),通过5个步骤(搭建框架→国家建模→资源管理→战争推演→可视化),就能实现一个基础版的模拟器,全程不用堆砌大量代码,重点在于理解每个环节的逻辑。

这个项目的优势在于:难度适中,适合Python新手实战,既能锻炼面向对象编程、数据处理、可视化的能力,又能体验策略推演的乐趣;而且适配今日头条的阅读习惯,用通俗的语言讲解,搭配直观的图表,很容易获得读者认可。

如果大家想尝试搭建,可以先从基础版开始,熟悉后再逐步扩展功能。后续我会分享具体的简化版代码(无复杂逻辑,新手可直接复制运行),关注我,带你用Python实现更多有趣的实战项目。

最后问一句:你觉得这个模拟器还能加入哪些有趣的元素?欢迎在评论区留言,一起完善这个项目!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 21:56:21 HTTP/2.0 GET : https://f.mffb.com.cn/a/479764.html
  2. 运行时间 : 0.094755s [ 吞吐率:10.55req/s ] 内存消耗:4,769.92kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=172e3698cdca889127575d07cee7a6f4
  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.000471s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000686s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000266s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000282s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000472s ]
  6. SELECT * FROM `set` [ RunTime:0.000197s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000724s ]
  8. SELECT * FROM `article` WHERE `id` = 479764 LIMIT 1 [ RunTime:0.001884s ]
  9. UPDATE `article` SET `lasttime` = 1774619781 WHERE `id` = 479764 [ RunTime:0.011091s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000264s ]
  11. SELECT * FROM `article` WHERE `id` < 479764 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000484s ]
  12. SELECT * FROM `article` WHERE `id` > 479764 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000366s ]
  13. SELECT * FROM `article` WHERE `id` < 479764 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000695s ]
  14. SELECT * FROM `article` WHERE `id` < 479764 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001161s ]
  15. SELECT * FROM `article` WHERE `id` < 479764 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.007199s ]
0.096411s