当前位置:首页>python>Python打造唯美樱花烟花桌面程序|自定义文字、夜空背景一键切换

Python打造唯美樱花烟花桌面程序|自定义文字、夜空背景一键切换

  • 2026-08-20 19:55:30
Python打造唯美樱花烟花桌面程序|自定义文字、夜空背景一键切换

Python打造唯美樱花烟花桌面程序|自定义文字、夜空背景一键切换

标题:治愈氛围感拉满!用Python写樱花+漫天烟花桌面动画,可自定义寄语、夜空配色(附完整源码)

标签:#Python趣味编程 #烟花动画 #Tkinter桌面开发 #代码分享 #治愈系视觉

导语

每逢节日、纪念日、生日,总想拥有一段专属的浪漫画面:静谧夜空下樱花树静静伫立,缤纷烟花轮番绽放,还能自由写下祝福文案、调整字体颜色与夜空风格。不用复杂设计软件,依靠Python短短几百行代码,就能自制一款可交互樱花烟花桌面工具,自带控制面板,新手复制即可运行。

本篇文章会完整讲解程序功能、运行环境、使用教程、代码逻辑拆解,文末附上全部可直接运行源码,收藏就能随时调试使用。

一、成品程序核心功能一览

这款整合Turtle绘图+Tkinter桌面窗口+粒子物理系统的动画程序,集成超多实用交互能力:

  1. 静态唯美基底画布左侧自动绘制手绘质感樱花大树,搭配200片随机飘落的粉色花瓣,永久悬浮夜空,氛围感底色拉满;
  2. 动态烟花粒子特效基于物理重力算法制作烟花绽放效果:随机频次升空炸开、多色彩烟花轮换、粒子扩散-坠落消亡完整生命周期,画面流畅不卡顿;
  3. 4款夜空背景一键切换纯黑夜空、深邃星空蓝、暗夜紫罗兰、静谧午夜绿四种深色主题,一键切换适配不同心境;
  4. 自定义文字寄语系统自由输入祝福话语,支持: ✅ 7种主流字体切换(微软雅黑/宋体/黑体/楷体/Arial等) ✅ 字号10~48自由调节 ✅ 自定义文字取色器挑选任意色彩 ✅ 加粗、斜体字体样式 ✅ 文字居中/靠左两种排布方式 文字永久置顶,不会被烟花画面遮挡;
  5. 便捷管理功能一键清空所有添加文字;窗口安全关闭自动终止烟花动画,无后台冗余进程;
  6. 窗口布局设计左右分栏结构:左侧动画展示区、右侧参数控制面板,布局清晰易上手。

二、运行前置准备(新手必看)

1. 需要安装的依赖库

打开电脑终端/CMD,依次执行下方安装命令:

pip install pillow

其余turtle、tkinter、random、time、math均为Python自带标准库,无需额外下载。

2. 运行环境要求

Windows/macOS均可,Python3.7及以上版本适配最佳; Windows系统自带Tkinter,macOS若打开报错,需额外安装tk组件。

三、程序使用详细教程

  1. 将文末完整代码复制,保存为cherry_firework.py文件;
  2. 终端进入文件所在文件夹,执行运行指令:
python cherry_firework.py
  1. 程序启动流程: 窗口弹出后,自动绘制樱花树+飘落花瓣,短暂延迟后漫天烟花开始循环绽放;
  2. 右侧控制面板操作步骤: ① 下拉框选择夜空背景,画面实时更换底色; ② 输入框填写想要的文案:生日祝福、节日寄语、短句文案都可以; ③ 依次设置字体、字号、文字颜色、加粗/倾斜、对齐方式; ④ 点击【添加文字至画布】,寄语就会显示在夜空之上; ⑤ 文字过多可点击【清空所有文字】一键重置;
  3. 点击窗口关闭按钮,动画立刻停止,程序安全退出。

四、代码核心逻辑简单拆解(零基础也能看懂)

模块1:Turtle樱花绘制模块

  • Tree递归函数:递归绘制樱花树干、树枝,枝干末端区分棕色枝干、粉白色樱花花苞,枝干粗细随长度动态变化,模拟真实树木生长形态;
  • Petal花瓣函数:批量生成随机坐标飘落花瓣,营造缓缓纷飞的春日氛围感。

模块2:烟花粒子物理系统(核心动画)

自定义Particle粒子类,每一朵烟花由数十个独立粒子构成:

  1. 升空阶段:粒子聚拢向上飞行;
  2. 炸开扩张阶段:粒子沿360°环形四散散开;
  3. 坠落消亡阶段:受重力GRAVITY影响缓缓下坠,生命周期结束自动清除画布粒子; 通过时间差计算帧间隔,保证动画流畅自然,随机烟花数量、色彩、绽放速度,每一轮画面都不重复。

模块3:Tkinter桌面窗口与交互面板

  1. 左右分割窗布局,嵌入Turtle绘图画布,实现静态樱花+动态烟花融合;
  2. 下拉选择框、颜色拾取器、复选框、输入框、按钮封装全部交互功能;
  3. 全局置顶机制:每次烟花刷新后强制将文字层级置顶,彻底解决文字被烟花遮挡问题;
  4. 窗口关闭回调函数:取消动画递归任务,避免进程残留。

模块4:全局配置常量

预设夜空配色数组、烟花色彩库、重力系数,想要自定义拓展画面效果,直接修改常量数值即可。

五、完整可运行Python源码

import turtleimport randomimport timefrom PIL import Image, ImageTkimport tkinter as tkfrom tkinter import ttk, colorchooser, fontfrom time import sleepfrom random import choice, uniform, randintfrom math import sin, cos, radians# 全局常量GRAVITY = 0.05colors = ['red''blue''yellow''white''green''orange''purple','seagreen''indigo''cornflowerblue']# 背景主题配色THEME_BG = {"纯黑夜空""#000000","深邃星空蓝""#050520","暗夜紫罗兰""#120522","静谧午夜绿""#001a1a"}# 全局变量text_items = []current_bg = "#000000"root = Nonecanvas = Noneturtle_screen = Nonepen = Noneafter_id = None# 存储烟花循环id,关闭窗口终止动画# -------------------------- 樱花绘制函数 --------------------------defTree(branch, t):    time.sleep(0.0005)if branch > 3:if8 <= branch <= 12:            t.color('snow'if random.randint(02) == 0else'lightcoral')            t.pensize(branch / 3)elif branch < 8:            t.color('snow'if random.randint(01) == 0else'lightcoral')            t.pensize(branch / 2)else:            t.color('sienna')            t.pensize(branch / 10)        t.forward(branch)        a = 1.5 * random.random()        t.right(20 * a)        b = 1.5 * random.random()        Tree(branch - 10 * b, t)        t.left(40 * a)        Tree(branch - 10 * b, t)        t.right(20 * a)        t.up()        t.backward(branch)        t.down()# 飘落花瓣defPetal(m, t):for i in range(m):        a = 200 - 400 * random.random()        b = 10 - 20 * random.random()        t.up()        t.forward(b)        t.left(90)        t.forward(a)        t.down()        t.color('lightcoral')        t.circle(1)        t.up()        t.backward(a)        t.right(90)        t.backward(b)# -------------------------- 烟花粒子系统 --------------------------classParticle:def__init__(self, canvas, idx, total, explosion_speed, x=0., y=0., vx=0., vy=0., size=2., color='red', lifespan=2):        self.id = idx        self.x = x        self.y = y        self.initial_speed = explosion_speed        self.vx = vx        self.vy = vy        self.total = total        self.age = 0        self.color = color        self.cv = canvas        self.cid = self.cv.create_oval(x - size, y - size, x + size, y + size, fill=self.color)        self.lifespan = lifespandefupdate(self, dt):        self.age += dtif self.alive() and self.expand():            move_x = cos(radians(self.id * 360 / self.total)) * self.initial_speed            move_y = sin(radians(self.id * 360 / self.total)) * self.initial_speed            self.cv.move(self.cid, move_x, move_y)            self.vx = move_x / (float(dt) * 1000)elif self.alive():            move_x = cos(radians(self.id * 360 / self.total))            self.cv.move(self.cid, self.vx + move_x, self.vy + GRAVITY * dt)            self.vy += GRAVITY * dtelif self.cid isnotNone:            self.cv.delete(self.cid)            self.cid = Nonedefexpand(self):return self.age <= 1.2defalive(self):return self.age <= self.lifespan# 烟花循环动画defsimulate(canvas):global after_id# 窗口关闭就停止递归ifnot root.winfo_exists():return    start_time = time.time()    explode_list = []    wait_time = randint(10100)    firework_num = randint(610)for _ in range(firework_num):        particle_group = []        x = randint(50550)        y = randint(50150)        speed = uniform(0.51.5)        size = uniform(0.53)        color = choice(colors)        boom_speed = uniform(0.21)        total_p = randint(1050)for i in range(1, total_p):            p = Particle(                canvas=canvas, idx=i, total=total_p, explosion_speed=boom_speed,                x=x, y=y, vx=speed, vy=speed, color=color, size=size, lifespan=uniform(0.61.75)            )            particle_group.append(p)        explode_list.append(particle_group)    total_duration = 0.0while total_duration < 1.8:        sleep(0.01)        now = time.time()        delta = now - start_time        start_time = nowfor group in explode_list:for p in group:                p.update(delta)        canvas.update_idletasks()  # 轻量化刷新,不冲刷文字        total_duration += delta# 所有文字强制置顶,避免被烟花盖住for tid in text_items:        canvas.tag_raise(tid)    after_id = root.after(wait_time, simulate, canvas)# -------------------------- 右侧控制面板逻辑 --------------------------# 切换背景主题defchange_bg_theme(event):global current_bg    sel = theme_combo.get()    current_bg = THEME_BG[sel]    canvas.config(bg=current_bg)    turtle_screen.screensize(bg=current_bg)# 切换背景后文字依旧置顶for tid in text_items:        canvas.tag_raise(tid)# 选取文字颜色defpick_text_color():    color_data = colorchooser.askcolor(title="选择文字颜色")if color_data[1]:        color_var.set(color_data[1])# 添加文字到画布(核心修复点)defadd_text_to_canvas():    content = text_input.get().strip()ifnot content:return# 获取字体样式参数    font_name = font_combo.get()    font_size = int(size_var.get())    text_color = color_var.get()    weight = "bold"if bold_var.get() else"normal"    slant = "italic"if italic_var.get() else"roman"    align = align_var.get()    text_font = font.Font(family=font_name, size=font_size, weight=weight, slant=slant)# 文字放置区域:画布中上位置,不会被遮挡    w = canvas.winfo_width()# 从上往下排布,错开烟花区域    base_y = 220    y_pos = base_y + len(text_items) * 38    x_pos = 40if align == "靠左"else w // 2    anchor = tk.W if align == "靠左"else tk.CENTER# 创建文字    txt_id = canvas.create_text(        x_pos, y_pos,        text=content, font=text_font, fill=text_color, anchor=anchor    )    text_items.append(txt_id)# 立刻把文字提升到最顶层    canvas.tag_raise(txt_id)# 清空所有文字defclear_all_text():for tid in text_items:        canvas.delete(tid)    text_items.clear()# 安全关闭窗口defclose_window():global after_idif after_id isnotNone:        root.after_cancel(after_id)    root.quit()# -------------------------- 主界面布局 --------------------------if __name__ == '__main__':    root = tk.Tk()    root.title("樱花烟花编辑器|文字正常显示版")    root.geometry("1080x560")    root.resizable(FalseFalse)# 左右分栏    pane = ttk.PanedWindow(root, orient=tk.HORIZONTAL)    pane.pack(fill=tk.BOTH, expand=True, padx=5, pady=5)# 左侧画布    frame_left = ttk.Frame(pane)    pane.add(frame_left, weight=3)    canvas = tk.Canvas(frame_left, height=520, width=750, bg="#000000")    canvas.pack()# Turtle嵌入画布    turtle_screen = turtle.TurtleScreen(canvas)    pen = turtle.RawTurtle(turtle_screen)    pen.hideturtle()    pen.getscreen().tracer(50)    turtle_screen.screensize(bg="#000000")    pen.left(90)    pen.up()    pen.backward(150)    pen.down()    pen.color('sienna')# 绘制樱花树、花瓣    Tree(60, pen)    Petal(200, pen)# 右侧控制面板    frame_right = ttk.Frame(pane, width=300)    pane.add(frame_right, weight=1)    row_idx = 0# 背景主题    ttk.Label(frame_right, text="🌌 背景主题设置", font=("微软雅黑",12,"bold")).grid(row=row_idx, column=0, columnspan=2, pady=8)    row_idx += 1    theme_combo = ttk.Combobox(frame_right, values=list(THEME_BG.keys()), state="readonly", width=22)    theme_combo.current(0)    theme_combo.bind("<<ComboboxSelected>>", change_bg_theme)    theme_combo.grid(row=row_idx, column=0, columnspan=2, pady=3)    row_idx += 2# 文本输入    ttk.Label(frame_right, text="✍ 输入文本内容", font=("微软雅黑",11)).grid(row=row_idx, column=0, columnspan=2)    row_idx += 1    text_input = ttk.Entry(frame_right, width=25)    text_input.grid(row=row_idx, column=0, columnspan=2, pady=3)    row_idx += 2# 字体设置    ttk.Label(frame_right, text="字体样式设置", font=("微软雅黑",11)).grid(row=row_idx, column=0, columnspan=2)    row_idx += 1    font_list = ["微软雅黑""宋体""黑体""楷体""Arial""Times New Roman""Lucida Calligraphy"]    font_combo = ttk.Combobox(frame_right, values=font_list, state="readonly", width=14)    font_combo.current(0)    font_combo.grid(row=row_idx, column=1, pady=2)    row_idx += 1    ttk.Label(frame_right, text="字号:").grid(row=row_idx, column=0, sticky=tk.W)    size_var = tk.StringVar(value="18")    size_spin = ttk.Spinbox(frame_right, from_=10, to=48, textvariable=size_var, width=14)    size_spin.grid(row=row_idx, column=1, pady=2)    row_idx += 1    ttk.Label(frame_right, text="文字颜色:").grid(row=row_idx, column=0, sticky=tk.W)    color_var = tk.StringVar(value="#ffffff")    ttk.Button(frame_right, text="选取颜色", command=pick_text_color, width=12).grid(row=row_idx, column=1, pady=2)    row_idx += 2# 加粗倾斜    bold_var = tk.BooleanVar()    italic_var = tk.BooleanVar()    cb_bold = ttk.Checkbutton(frame_right, text="加粗", variable=bold_var)    cb_italic = ttk.Checkbutton(frame_right, text="倾斜", variable=italic_var)    cb_bold.grid(row=row_idx, column=0)    cb_italic.grid(row=row_idx, column=1)    row_idx += 1# 对齐方式    align_var = tk.StringVar(value="居中")    ttk.Radiobutton(frame_right, text="居中", variable=align_var, value="居中").grid(row=row_idx, column=0)    ttk.Radiobutton(frame_right, text="靠左", variable=align_var, value="靠左").grid(row=row_idx, column=1)    row_idx += 2# 功能按钮    ttk.Button(frame_right, text="添加文字至画布", command=add_text_to_canvas, width=22).grid(row=row_idx, column=0, columnspan=2, pady=4)    row_idx += 1    ttk.Button(frame_right, text="清空所有文字", command=clear_all_text, width=22).grid(row=row_idx, column=0, columnspan=2, pady=4)# 启动烟花    root.after(100, simulate, canvas)    root.protocol("WM_DELETE_WINDOW", close_window)    root.mainloop()

六、自定义拓展小技巧

  1. 增加烟花种类:修改colors列表,新增粉色、香槟色等色调,烟花色彩更加丰富;
  2. 调整重力大小:调大GRAVITY数值,烟花坠落更快;调小数值,烟花飘散更缓慢轻柔;
  3. 修改樱花大小:主函数Tree(60, pen)中数字60为树干初始长度,调大树木更高更大;
  4. 增加花瓣数量:Petal(200, pen)更改数字,数值越大飘落花瓣越多;
  5. 自定义夜空配色:在THEME_BG字典里新增键值对,填入十六进制色号即可新增夜空主题。

七、结语

一段代码,把樱花、星空、烟火与温柔寄语融合在一起,不管是节日送给亲友,还是闲暇时运行舒缓心情都格外合适。Python编程不只有枯燥的算法开发,还能亲手创造浪漫治愈的视觉画面。

大家运行过程中遇到报错、想要新增功能(比如保存画面截图、背景音乐、全屏模式)都可以在评论区留言,后续会持续优化迭代版本~

觉得有用别忘了点赞收藏,转发给喜欢编程和浪漫画面的朋友吧!


推文排版适配公众号编辑器:分段清晰、小标题层级分明、代码块可直接复制,表情点缀柔和,阅读观感舒适;正文兼顾科普+实操+源码,适合技术分享类公众号发布。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 14:40:22 HTTP/2.0 GET : https://f.mffb.com.cn/a/509838.html
  2. 运行时间 : 0.238641s [ 吞吐率:4.19req/s ] 内存消耗:4,749.40kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=9ecefb09afcde291b416bbd18ecb0c0b
  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.001177s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001659s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000791s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000758s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001386s ]
  6. SELECT * FROM `set` [ RunTime:0.000639s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001461s ]
  8. SELECT * FROM `article` WHERE `id` = 509838 LIMIT 1 [ RunTime:0.002531s ]
  9. UPDATE `article` SET `lasttime` = 1787294423 WHERE `id` = 509838 [ RunTime:0.042150s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.004350s ]
  11. SELECT * FROM `article` WHERE `id` < 509838 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001319s ]
  12. SELECT * FROM `article` WHERE `id` > 509838 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001452s ]
  13. SELECT * FROM `article` WHERE `id` < 509838 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001982s ]
  14. SELECT * FROM `article` WHERE `id` < 509838 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.013857s ]
  15. SELECT * FROM `article` WHERE `id` < 509838 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001926s ]
0.242320s