当前位置:首页>python>想自学 Python,看这本就够了

想自学 Python,看这本就够了

  • 2026-08-18 23:11:29
想自学 Python,看这本就够了

本 文 导 读

01

解决什么问题

02

作者与定位

03

全书脉络

04

教学法解析

05

局限性

06

阅读建议

07

案例附录

01

THE PROBLEM

这本书解决什么问题

估计不少同学已经在自学Python了,那问你一个问题。

你有没有这样一种感觉,就是自己学的时候,语法都看懂了,列表会写了,函数会调了。但合上书,让你自己从头写一个东西,哪怕只是一个能用的命令行小工具,脑子也是一片空白。

其实这不是你一个人的问题。这是传统编程教材的结构性缺陷(一般被戏称为防自学教材)。

大多数Python相关教材的写法是第一章讲语法,第二章讲列表,第三章讲函数,第四章讲类。你一章一章往下学,每章都觉得懂了,但学到第六章发现第三章的已经忘了。更麻烦的是,你从来没有在任何一章里被要求「从头到尾写一个完整的东西」。

你的大脑在学编程时其实在找两样东西:模式和场景。

模式是「这种写法解决哪类问题」。场景是「这个知识点在什么情况下会被用到」。传统教材一般只讲解语法定义,给出代码片段,却没给出模式和场景。所以学完就忘,这就是因为你的大脑不知道怎么给这些知识「编索引」。

核 心 方 法

作者在设计每章内容时遵循的一个原则就是先给你的大脑一个「挂钩」,再把知识挂上去。这个「挂钩」要么是视觉画面,要么是具体场景,要么是一个故事——你在解决一个个具体问题,顺带把 Python 学会了。

这个「挂钩」要么是一个视觉画面(一页纸的插图解释变量作用域),要么是一个具体场景(你要做一个 Web 应用,学着学着就需要 Flask 了),要么是一个故事(两个程序员在对话中讨论为什么用装饰器)。

所以你读这本书的感觉不是「在学习」,是在「解决一个个具体问题」,然后顺带把 Python 学会了。这种感觉,很奇妙……

02

ABOUT THE AUTHOR

作者背景和这本书的定位

Paul Barry 是爱尔兰的技术教育者,在 IT 教育领域待了二十多年。他教过从中学到研究生各个层次的学生,最大的体会就是不是学生学不会,是教材没有与大脑的工作方式同步。

这个理念跟 Head First 系列的创立者 Kathy Sierra 和 Bert Bates 一脉相承。他们基于认知科学的研究(注意力、记忆编码、模式识别)设计了一套教学法,核心是多感官输入(文字 + 图像 + 对话)、情境化学习(在解决问题中学知识)、间隔重复(关键概念在不同章节反复出现)。

所以这本书不是一本普通的 Python 入门书。它在教学法设计上的用心程度,远超大多数同类书。如果你有自学编程失败的经历,这本书可能是你的转折点,毕竟这本书是全球公认最适合小白入门的经典教材之一。

03

STRUCTURE

全书脉络

全书分为三个大的阶段:

阶段一:基本功(第 1-4 章)

从零开始建立 Python 编程的核心概念。

第一章不讲「什么是 Python」这种废话,上来就让你操作列表,因为列表是 Python 最直观的数据结构,你能马上看到反馈。第二章讲函数和模块,不是抽象地讲定义,而是让你把自己写的代码分享给别人用。第三章引出异常,让你的程序在出错时不会直接崩溃。第四章讲数据结构,字典和集合在什么场景下比列表更合适。

这个阶段结束时,你应该能写一个能用的 Python 脚本,处理简单的数据输入输出。

阶段二:Web 与数据库(第 5-7 章)

进入真正的应用开发。你或许觉得进度有点快了,但这就是你的大脑最喜爱的学习节奏。

第五章是全书的一个转折点。前四章你还在学语言本身,第五章突然带你构建一个 Web 应用(使用 Flask)。这一步跨度很大,但作者做了很多铺垫,你不需要理解 Web 开发的全部原理,只需要跟着一步步做,在做的过程中自然接触到请求、路由、模板这些概念。

第六章加入数据库(SQLite),让你做的 Web 应用能把数据存起来。第七章引入上下文管理器和 with 语句,看起来是语法细节,但它的实际价值是让你的数据库连接不会因为忘记关闭而出 bug。

这个阶段结束时,你已经有了一个完整的 Web 应用,虽然简单,但从前端到后端到数据库,全套都有。

阶段三:进阶与实战(第 8-10 章)

提升代码质量和部署能力。

第八章讲装饰器。这是 Python 里一个比较进阶的特性,但作者用一个非常巧妙的场景引入,就是当你写了一段代码,想在不修改原代码的基础上给它加日志功能。装饰器就是为此而生的。

第九章讲数据处理。从 CSV 读到 JSON 解析,用 Python 处理真实世界的数据。这一章跟前面的 Flask 应用呼应,因为你的 Web 应用要能处理用户上传的文件。

关 键 判 断

学编程的终点不是你写完代码,是别人能用上你的代码。这本书把部署作为最后一章,就是要让你做的项目有真实的闭环。

04

PEDAGOGY

这本书的核心教学法解析

为什么说这本书的「教法」比内容更值得关注?我拆三个点跟你细说。

第一,交错学习(Interleaving)。

大多数教材是「主题式」的。这一章只讲文件操作,下一章只讲异常处理。但真实编程中,这两件事是混在一起的。你打开文件,可能文件不存在,所以你要处理异常。你处理异常,可能需要记录日志,所以你要调用 logging 模块。

学 习 原 理

这个检索过程本身,就是最强的记忆编码方式。前三章你学列表和函数,第四章突然要求你处理数据文件——你在被迫「检索」前几章学过的内容。

第二,可视化优先。

编程教材常见的问题是「用文字解释代码」。但这本书大量使用插图来展示代码的执行过程。比如解释变量赋值,它没有写什么「a = b + c 表示将 b 和 c 的和赋值给 a」,而是画一张图,用一个盒子代表变量 a,两个盒子代表 b 和 c,箭头表示计算流向。

认知科学研究表明,同时处理文字和图像信息时,大脑会建立两组独立的记忆线索。以后你回忆这个知识点,如果文字线索断了,图像线索可能还在。你也许记不住「赋值语句的语法」,但你可能还记得「那张三个盒子连起来的图」。

第三,对话式教学。

书里还经常出现两个虚拟程序员在聊天。一个说「我觉得应该用列表」,另一个说「但你有没有想过,如果数据量很大的话……」这种设计看起来有点幼稚,但实际上它在模拟你在真实工作中会遇到的情况:跟你一起写代码的人会质疑你的选择,你需要为自己的决定找到理由。

你一个人看书的时候,没有人问你「为什么用列表不用元组」。但书里的人物在替你完成这个质疑。你读到这段对话的时候,其实是在跟作者进行一次异步的思维碰撞。

05

LIMITATIONS

这本书的局限性

以下是一些你需要注意的问题。

第一,深度有限。

这本书的目标是让你「学会用 Python 做东西」,不是能让你快速「成为 Python 开发工程师」。如果你想深入学习 Python 的高级特性,例如元类、异步编程、C 扩展等,这本书帮不了你。它是一本入门书,定位是让你从 0 到能写一个完整的应用。

第二,部分概念讲解可能不够细致。

为了保持节奏和趣味性,作者在部分话题上做了简化。比如装饰器这一章,虽然引入了场景,但对于装饰器的工作原理(闭包、函数对象)讲得不够深入。如果你后续需要深入理解这些概念,可能需要搭配其他资料(推荐《Python Cookbook》或者官方文档)。

06

READING GUIDE

阅读建议

先读章节前的「大脑准备」部分。 每一章开头都有一段简短的内容预览,告诉你这章会覆盖什么、需要什么前置知识。不要跳过。

做练习。 这本书的练习是教学流程的一部分。你在练习中出的错、卡住的地方、花时间 debug 的过程,才是真正的学习时刻。

项目别跳。 每章结尾的项目是全书的设计核心。如果时间有限,宁可选两章做完整的项目,也别读完十章只看不练。

关于版本的选择。 如果你能找到第二版(英文版是 2016 年出版,封面是银色的蛇),建议优先读第二版,覆盖了 Python 3.5+ 的特性和更新后的 Flask 版本。如果只有中文第一版,也没关系,毕竟底层的教学法设计和核心内容是一样的。甚至你能到网上找到PDF也能跟着学。

07

CASE STUDIES

案例附录

以下五个案例覆盖了本书各阶段的核心知识点,给你提前剧透一点。

案例一:列表推导式——从「怎么遍历」到「怎么更优雅地遍历」

python
# 传统写法squares = []for x in range(10):    squares.append(x * x)# 列表推导式squares = [x * x for x in range(10)]

这段代码相差四行,但功能一样,这就两者背后的思维方式完全不同。传统写法你在描述「怎么做」,创建一个空列表,遍历,append。列表推导式你在描述「要什么」,给我一个由 x*x 组成的列表,x 从 0 到 9。

这个知识点你在很多教程里也能找到,但多数只是说「列表推导式更简洁」。书中用插图让你直观地看到两种写法在「思维层级」上的差异,一个是逐条指令(计算机视角),一个是声明式描述(人类视角)。这个理解层面的差异,就是书中反复强调的「Pythonic」的真正含义。

案例二:函数是一等公民——从「用来组织代码的」到「可以被传递的」

python
def apply_discount(price, strategy):return strategy(price)def student_discount(price):return price * 0.9def vip_discount(price):return price * 0.8print(apply_discount(100, student_discount))  # 90.0print(apply_discount(100, vip_discount))      # 80.0

对于初学者来说,「函数可以作为参数传递」是一个很反直觉的概念。函数不是用来「调用」的吗?怎么还能被「传来传去」?

书中用一张图来解释:把函数想象成一个工具箱里的螺丝刀。不同的螺丝刀,你用来拧不同的螺丝。当需要拧一个特殊螺丝时,你从工具箱里选一把合适的螺丝刀,而不是重新造一把。函数作为参数传递的本质就是这样:你不是在写死一种打折策略,是在写一个能接受不同打折策略的框架。

这是函数式编程思想的萌芽。如果你以后接触到 map、filter、reduce,会发现在 Python 里的实现就是建立在这个理解之上的。书中在这个阶段不会展开函数式编程,但你以后会恍然大悟。

案例三:装饰器——从「硬编码日志」到「不侵入原有代码地加功能」

python
def log_calls(func):def wrapper(*args, **kwargs):        print(f'Calling {func.__name__}')return func(*args, **kwargs)return wrapper@log_callsdef add(a, b):return a + badd(35)  # 输出:Calling add,然后返回 8

装饰器是 Python 里最容易被「学会语法但不懂思路」的特性之一。很多教程告诉你装饰器就是一个函数返回另一个函数、用 @ 语法糖调用,但估计你很难懂它到底有什么用。

书中的引入方式很巧妙。它先让你陷入一个具体困境,就是你的应用里有十几个函数,现在老板要求在每个函数被调用时记录日志。最直接的方案是修改每个函数,在开头加一行 print()。但你有十几个函数,而且以后可能还有更多。

这时候你需要的不是「重复劳动」,是「抽象能力」。

书中用两页的插图展示了这个思考过程。一页是密密麻麻的代码,每个函数里都有重复的日志代码。翻过一页,装饰器把重复代码抽出来了,原来的函数干干净净。视觉上的对比让你直观地感受到「提取横切关注点」这个操作的价值,这是一种阅读体验上的顿悟,单纯读文字解释很难获得这种感受。

装饰器这个概念来自装饰器设计模式,在 Java 或 C++ 里需要用类来实现。Python 的函数是一等公民,使得装饰器可以用函数实现,比传统面向对象方案简洁得多。书中在这里做了一次分层教学,你只需要学会用装饰器(应用层),不需要理解它底层的闭包机制(原理层)。等你用熟练了,自然会产生「装饰器到底是怎么工作的」这个疑问,那时再去补闭包的知识,理解效率会高很多。

案例四:上下文管理器——从「手动打开关闭」到「自动清理」

python
# 传统写法f = open('data.txt''r')try:    data = f.read()finally:    f.close()# 上下文管理器with open('data.txt''r'as f:    data = f.read()

这两段代码的功能完全一样,但设计哲学不同。传统写法把「做什么」(读文件)和「收尾工作」(关闭文件)混在一起。上下文管理器把收尾工作隐式处理了。

书中用租房子来对比解释。传统写法是你自己负责水电网气的开通和关闭,出一次差错可能就忘了关某个账户。上下文管理器相当于找了中介,租期到了中介自动帮你处理好一切。你只需要关注住得舒不舒服,不需要操心那些固定流程。

这个知识点的价值超出了 Python 本身。上下文管理器的本质是资源管理,任何需要获取和释放的资源(文件、数据库连接、网络连接、锁)都可以套用这个模式。你以后在写任何语言的代码时,如果发现自己在「手动获取,手动释放」,都可以想想能不能用类似的机制来自动化。

案例五:Flask + SQLite 构建 Web 应用——从「脚本」到「可用的 Web 服务」

这是全书最长的连续项目,跨两章。你从零开始,最终得到一个能在浏览器中访问的 Web 应用,包含数据库读写。

python
from flask import Flask, render_template, requestimport sqlite3app = Flask(__name__)@app.route('/')def home():return render_template('home.html')@app.route('/search', methods=['POST'])def search():    athlete = request.form['athlete']    conn = sqlite3.connect('athletes.db')    cursor = conn.execute('SELECT * FROM athletes WHERE name=?', (athlete,))    results = cursor.fetchall()    conn.close()return render_template('results.html', results=results)

这几行代码融合了前面学过的几乎所有知识点:函数(@app.route 是装饰器)、模块(import)、异常处理(数据库查询的健壮性需要考虑)、数据结构(结果以列表形式返回)。

书中展示了完整的架构图:用户的浏览器(左边)→ Flask 服务器(中间)→ SQLite 数据库(右边),中间标注了 HTTP 请求的流向和数据格式的转换。一张图就解决了一个很核心的理解障碍,就是前后端到底是怎么通信的? 很多初学者会混淆「前端代码在浏览器里跑」和「后端代码在服务器上跑」这两件事。这张图让分界线变得一目了然。

部署到 PythonAnywhere是这个项目的自然延伸。代码写好了,在本地能跑了,但怎么让所有人都能访问?书中提供了 PythonAnywhere 的完整部署流程,包括环境配置、数据库迁移、静态文件处理。这一步让整个项目有了真实的闭环。至此,你不是在「学编程」,是真的做出了一个「可用的东西」。这个心理层面的差异,是保持学习动力的关键。

这本书能给你的,不是语言的深度,而是学习的信心。

前面说了,它有很多不足,例如深度不够深、部分概念打了折扣等。但你认真读完它、做完所有项目,得到的不只是「会了 Python」,而是你知道自己有能力学会一个技术栈,并能用这个技术栈做出一个完整的东西。

这个信心比你记住多少语法重要得多。因为 Python 只是你技术路上的第一站,后面还有更多语言、更多框架要学。如果你在第一站就建立了「我能自己搞定」的正反馈,后面的路会顺畅很多。

以上,希望对你有帮助。

END
⭐️推荐阅读
⭐️写在最后
「计算机突围」专注计算机专业学习规划、求职、考研、公考、职业发展规划,结合亲身经历,持续分享真实思路和实用经验方法,欢迎「点赞、收藏+关注,祝你所愿皆成!

互动留言

评论区聊聊

👉 关于计算机专业,你还有哪些问题?欢迎评论区留言,持续更新!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 22:54:42 HTTP/2.0 GET : https://f.mffb.com.cn/a/507651.html
  2. 运行时间 : 0.222844s [ 吞吐率:4.49req/s ] 内存消耗:4,541.02kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=d5c78f2f3b916219ccea69477dcdc3f1
  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.000837s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001781s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.030241s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001523s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001475s ]
  6. SELECT * FROM `set` [ RunTime:0.003981s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001416s ]
  8. SELECT * FROM `article` WHERE `id` = 507651 LIMIT 1 [ RunTime:0.024655s ]
  9. UPDATE `article` SET `lasttime` = 1787324082 WHERE `id` = 507651 [ RunTime:0.012375s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000330s ]
  11. SELECT * FROM `article` WHERE `id` < 507651 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000588s ]
  12. SELECT * FROM `article` WHERE `id` > 507651 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.007929s ]
  13. SELECT * FROM `article` WHERE `id` < 507651 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.020945s ]
  14. SELECT * FROM `article` WHERE `id` < 507651 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.028620s ]
  15. SELECT * FROM `article` WHERE `id` < 507651 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.008385s ]
0.224464s