当前位置:首页>python>一个上午,AI 把整个 Python 后端塞进了浏览器

一个上午,AI 把整个 Python 后端塞进了浏览器

  • 2026-07-01 22:21:30
一个上午,AI 把整个 Python 后端塞进了浏览器

溜得很 发自 AI观察室

2026 年 5 月 30 日,独立开发者 Simon Willison 在博客里甩出一个项目,一整套 Python ASGI Web 应用,整个跑在浏览器里。

没有后端 HTTP 服务器。除了几个静态引导文件,一台服务器都不要。

更离谱的是这东西不是他自己写的。他原话是「This morning I set Claude Opus 4.8 the task」,一个上午,Claude Opus 4.8 在 Claude Code for web 里把它捣鼓出来了。对应 GitHub 上的 PR #112,据 PR 记录是当天下午推送,6 个 commit,27 个测试全绿。

▲ Pyodide 官方文档

你敢信,这活儿干完合并删分支,前后就一天。

浏览器里跑 Python,到底卡在哪

▲ Pyodide 官方仓库

先说清楚一件事,浏览器跑 Python 早就不是新闻。

干这事的家伙叫 Pyodide,2018 年由 Mozilla 的 Michael Droettboom 搞出来的,把整个 CPython 解释器编译成了 WebAssembly。2021 年 Mozilla 把它转成了独立社区项目,到现在已经是浏览器跑 Python 的主力。

所以「在浏览器里执行 Python」这步,四年前就通了。

真正的坎在另一头。一个完整的 Web 应用,光能执行代码不够。它还得能接住 HTTP 请求,得有人把浏览器地址栏里那个 /app/users 翻译成应用能听懂的话。这活儿平时是服务器干的,Nginx、Uvicorn 这些。

现在服务器没了。谁来接请求?

没有服务器的 Web 应用,请求该往哪儿送。

Willison 其实四年前就撞过这堵墙。2022 年 5 月他做过 Datasette Lite,同样用 Pyodide 在浏览器跑,但当时走的是 Web Worker 加拦截导航的路子,大概 300 行 JavaScript。问题是返回的 HTML 里 PROTECT_0000 标签的 JS 不会被执行,一堆 Datasette 插件直接废掉。

他当年其实想用 Service Worker,掂量了一下还是选了 Web Worker。这回 AI 帮他把当年那条没走的路走通了。

Service Worker,那个一直被你忽略的家伙

关键先生是 Service Worker。

这玩意你天天用,但基本没人注意它。它平时干的是缓存、离线、推送通知那些脏活累活,最大的本事是能拦截页面发出的每一个网络请求。

新方案的思路就一句话,让 Service Worker 把所有 /app/ 下面的同源请求全拦下来,按 ASGI 协议喂给跑在 Pyodide 里的 Python 应用,再把应用吐出来的响应包成一个真实的 Response 还回去。

跟旧方案差在哪?差在「真实」两个字。

浏览器拿到的是货真价实的 HTTP 响应,所以返回 HTML 里的内联脚本会正常执行,303 重定向会正常跟随。旧方案里那些断掉的插件,这下全活了。

这里还得提一句 ASGI。它是 Python 异步服务器网关接口,3.0 版本 2019 年发布,主要由 Andrew Godwin 主导写的,就是定义服务器和 Python 应用之间怎么对话的一套规矩。

新方案聪明就聪明在,它没去改应用,而是让 Service Worker 假装成一台符合 ASGI 规范的服务器。应用根本不知道自己已经不在服务器上了。

不止 FastAPI,连 Datasette 整个搬进来了

光有 demo 还不够说服人。

项目里塞了两个演示。第一个是 FastAPI 的小应用,0.136 版本,能点链接导航、能提交表单、能走 303 重定向、能调 JSON API、还能在页面里直接 fetch。这个还算预期之内。

真正让人「卧槽」的是第二个。

他们把完整的 Datasette 1.0a31 整个搬了进去。数据库导航、表格浏览、跑 SQL、写入、.json API,全都在浏览器里跑。连带 sqlite-utils、asyncinject 这一串十几个纯 Python wheel,一个不落塞进浏览器。

同一套机制,喂得动 FastAPI,也扛得住完整的 Datasette。

README 里写得很直白,「proving the mechanism isn't FastAPI-specific」。意思是只要是标准 ASGI 应用,理论上都能这么搬进浏览器,跟用什么框架没关系。这才是这个项目真正的分量,它证明的不是某个 demo,是一整套通用机制。

还有个细节挺戳人。所有 Pyodide 运行时和 wheel 都能下载到本地,整个 demo 能完全离线跑。Willison 当年做 Datasette Lite 的初衷就一句话,「I want as many people as possible to be able to use my software」,任何能跑 WebAssembly 的浏览器都能用,不装 Python 环境也行。

别急着吹,这里面的坑还真不少

冷静一下。这东西离「随便就能用」还差得远。

最常被骂的是体积和加载。Pyodide 官方自己都承认,核心包好几个 MB,带上科学库能到几十 MB。Willison 2022 年就吐槽过,在很多按流量计费的地区,10MB 下载量已经太多了。

有人在 Pyodide 的 GitHub issue 里撂过一句狠话,说只要首次加载还要 5 秒,浏览器里的 Python 就威胁不到 JavaScript。这话挺扎心,不过也就是一种声音,当然也有人觉得,能离线、能免装环境,这个体积值。

性能也天生比原生慢,WebAssembly 和浏览器的限制摆在那儿,绕不开。

项目自己也老实列了一堆局限。只支持 HTTP 和 lifespan,没有 WebSocket。请求和响应都不是流式的,请求体一次性投递,响应先缓冲再返回。单 Pyodide worker、单线程,并发请求只能在事件循环上交错排队,没为高并发调过优。

它能跑,不代表它能扛。

为了让 Datasette 真跑通,还得打一堆补丁。Datasette 的 base.html 硬编码了个 /-/jump 端点会逃出 /app/ 作用域,README 直接标注「Genuinely a Datasette bug」。写入页发的 X-Frame-Options: DENY 会挡 iframe,得在 Service Worker 里主动把这些 frame-busting 头剥掉。Service Worker 还读不到 Cookie 头,cookie session 穿不过去,只能靠直接注入 root actor 来认证。

补丁堆这么高,其实都指向同一个前提,应用得对每个 URL 都老老实实尊重 base_url。而这个前提,并不总成立。

那这事到底算啥

把吐槽放一边,我的态度很明确,这是个真东西。

它没发明新轮子。Pyodide 是现成的,Service Worker 是现成的,ASGI 是现成的。它干的是把三个本来不挨着的东西拼到一起,拼出了一个四年前没人走通的方案。Willison 自己都说了,做完打算据此升级 Datasette Lite 本体。

那它到底适合谁用?有一说一,场景挺清楚。交互式文档、教学 demo、纯前端就能托管的轻应用,这套东西是真香,不用配服务器,浏览器点开就跑。但要是你想拿它扛高并发、要 WebSocket、对加载速度还特别敏感,那就别想了,它现在压根不是干这个的。先想清楚自己在哪一档,再决定要不要碰。

有一说一,真正让我后背发凉的不是技术本身。

是这活儿的完成方式。一个资深开发者四年前绕开了的那条路,今年一个上午,他干脆把任务丢给 Claude Opus 4.8。AI 用红绿 TDD 写了 6 个 commit,27 个测试全绿,自己跑通了。他干的事更像是审稿和拍板。

说到底,差的可能不是能力。Willison 四年前不是攻不下这条路,是当年没工夫、也没必要专门花一个上午把它重做一遍。今年这个上午的成本,AI 帮他扛了。

中间隔着的,到底是四年的技术积累,还是一个肯花一个上午、还不喊累的模型?

你会愿意用一个加载要等十几秒、但完全不用服务器的浏览器版 Python 应用吗?

溜得很 · AI 行业观察

觉得有点意思?

点个 「在看」 让更多人看到

转给那个总说「AI不会取代人」的朋友

评论区见,我看每一条

关注溜得狠·设为星标

AI 行业的事,我帮你盯着

📚 参考来源

[1] simonwillison.net —「Running Python ASGI apps in the browser with Pyodide and Service Workers」,https://simonwillison.net/2026/May/30/pyodide-asgi-browser ,2026-05-30
[2] GitHub — simonw/research pyodide-asgi-browser 项目 README,https://github.com/simonw/research/tree/main/pyodide-asgi-browser ,2026-05-30
[3] GitHub — Pull Request #112(6 commit、27 测试、时间线),https://github.com/simonw/research/pull/112 ,2026-05-30
[4] GitHub — pyodide/pyodide 官方仓库(Pyodide 起源),https://github.com/pyodide/pyodide
[5] InfoQ —「Pyodide Becomes Independent Community Project」,https://www.infoq.com/news/2021/05/pyodide-python-webassembly/ ,2021-05-31
[6] simonwillison.net —「Datasette Lite」(2022 旧方案),https://simonwillison.net/2022/May/4/datasette-lite/ ,2022-05-04
[7] asgi.readthedocs.io — ASGI 3.0 官方规范,https://asgi.readthedocs.io/en/latest/specs/main.html ,2019-03-20
[8] pyodide.com — Pyodide 介绍页(包体积与性能说明),https://pyodide.com/

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 12:32:13 HTTP/2.0 GET : https://f.mffb.com.cn/a/496505.html
  2. 运行时间 : 0.277854s [ 吞吐率:3.60req/s ] 内存消耗:4,687.34kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=3dfd28f891633a3927cf0fba85b20fa5
  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.000537s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000649s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.014676s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.004194s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000645s ]
  6. SELECT * FROM `set` [ RunTime:0.005410s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000624s ]
  8. SELECT * FROM `article` WHERE `id` = 496505 LIMIT 1 [ RunTime:0.009148s ]
  9. UPDATE `article` SET `lasttime` = 1783053133 WHERE `id` = 496505 [ RunTime:0.028539s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.005745s ]
  11. SELECT * FROM `article` WHERE `id` < 496505 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.037843s ]
  12. SELECT * FROM `article` WHERE `id` > 496505 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002963s ]
  13. SELECT * FROM `article` WHERE `id` < 496505 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.057308s ]
  14. SELECT * FROM `article` WHERE `id` < 496505 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.004149s ]
  15. SELECT * FROM `article` WHERE `id` < 496505 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004018s ]
0.283467s