当前位置:首页>python>超精致Python离线人脸识别签到系统

超精致Python离线人脸识别签到系统

  • 2026-07-02 16:50:15
超精致Python离线人脸识别签到系统

超精致Python离线人脸识别签到系统|可视化GUI+高精度识别,零基础一键部署

💡 前言:告别传统低效签到,解锁智能考勤新方式

在校园班级考勤、小型企业工位打卡、实验室值守登记、社团活动签到等各类日常场景中,传统签到方式的弊端早已凸显。手写纸质签到表不仅耗费人力、统计效率极低,还容易出现代签、漏签、字迹模糊无法核对的问题;市面上商业化的考勤软件大多需要联网使用、开通付费会员,且数据上传云端存在隐私泄露风险,同时设备适配性差、操作繁琐,对小型团队和学生群体极不友好。

为了解决这些痛点,今天给大家分享一款纯本地离线运行、无秘钥、无联网需求、高精度、可视化GUI界面的Python人脸识别签到系统。该项目基于OpenCV视觉库+Tkinter可视化框架开发,轻量化、零成本、易部署,无需任何深度学习模型和复杂算法配置,普通电脑即可流畅运行。系统集成了人脸采集注册、实时人脸检测、智能身份识别、自动签到记录、在线用户可视化展示、未注册人脸弹窗提示等全套核心功能,同时优化了光线干扰、人脸偏移、识别误差等常见问题,识别准确率大幅提升。界面简约精致、交互逻辑清晰,完全满足课程设计、毕设项目、小型团队日常考勤使用,是新手学习Python视觉开发、GUI开发、项目实战的优质案例。

✨ 项目核心亮点

  • 离线独立运行:无需联网、无需第三方接口,本地存储人脸数据,隐私安全无泄露

  • 高精度识别:优化图像预处理+归一化匹配算法,抗光线、轻微角度干扰

  • 可视化GUI界面:实时摄像头画面、签到数据表格、状态实时更新,颜值拉满

  • 智能交互:未注册人脸自动弹窗提示,一键完成人脸注册

  • 数据自动维护:自动清理失效用户数据,避免冗余报错

  • 轻量化部署:代码简洁易懂、依赖少,零基础可快速部署运行


一、项目代码核心模块深度解析

整套代码结构分层清晰,从基础配置工具、数据存储管理、核心识别算法、GUI交互系统四大维度拆分,逻辑独立、耦合度低,方便大家修改拓展。下面分三大核心模块详细拆解核心功能原理。

模块一:基础配置与通用工具封装

这一模块是整个项目的基础支撑,主要完成项目路径初始化、人脸检测器加载、图像读写、中文绘制、人脸图像预处理等通用功能,解决了OpenCV原生不支持中文、光线干扰、图像适配等核心问题。

首先项目自动获取程序根目录,创建人脸图片存储文件夹,统一管理所有用户人脸数据,同时初始化OpenCV官方高精度 frontalface 人脸分类器,保障人脸检测的基础精度。自定义图片保存函数通过编码方式保存图片,规避中文路径报错问题,兼容性更强。

重点优化了中文绘制功能,由于OpenCV原生无法渲染中文,项目结合PIL库实现中文文字绘制,可在摄像头画面上实时展示用户名、在线状态。同时核心的preprocess\_face预处理函数,通过图像统一缩放+直方图均衡化处理,有效解决昏暗、强光环境下人脸识别失效的问题,大幅提升复杂光线场景下的识别稳定性。

模块二:用户数据持久化与人脸注册系统

数据存储是签到系统的核心,项目采用pickle二进制持久化存储方式,本地保存用户姓名与人脸图片路径,无需数据库,轻量化且高效。

数据加载函数会自动校验用户数据有效性,遍历清理失效、丢失的人脸文件数据,避免程序报错、冗余数据堆积,保障系统长期稳定运行。人脸注册逻辑做了多重校验:判断用户名非空、校验用户是否重复注册、检测摄像头是否有人脸、判断图片是否保存成功,层层拦截异常操作。

用户注册时,系统自动截取画面中的人脸区域,预处理后保存至本地文件夹,同时将用户名与文件路径绑定存入数据文件,完成永久留存,重启程序后数据不会丢失,完美满足长期考勤使用需求。

模块三:高精度人脸识别算法与GUI可视化交互

这是项目的核心功能模块,包含智能人脸识别算法可视化界面交互两大核心能力。

人脸识别摒弃了传统简单的模板匹配,采用TM_CCOEFF_NORMED归一化相关匹配算法,该算法具备极强的抗干扰能力,对光线变化、人脸轻微偏移、缩放都有良好适配性。系统设置0.68的高分阈值,只有匹配度超过阈值才会判定为匹配成功,有效杜绝误识别、错识别问题,保障考勤准确性。

GUI界面基于Tkinter开发,布局精致规整,分为摄像头展示区、功能按钮区、签到数据展示表格区三大板块。程序实时读取摄像头画面,循环检测人脸、匹配用户信息,自动在表格中更新签到姓名、在线状态、精准签到时间。同时设置智能弹窗逻辑:检测到未注册人脸时自动弹窗提示注册,已注册用户持续在线时不会重复弹窗,交互体验极致流畅。


二、项目完整可运行源码

以下为无秘钥、无冗余、可直接运行的完整代码,复制即可部署使用:

import cv2
import os
import pickle
import numpy as np
from PIL import Image, ImageTk, ImageDraw, ImageFont
import tkinter as tk
from tkinter import ttk, simpledialog, messagebox
from datetime import datetime
import warnings
warnings.filterwarnings("ignore")

# ==================== 项目全局配置 ====================
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
FACE_SAVE_PATH = os.path.join(BASE_DIR, "face_images")
USER_DATA_FILE = os.path.join(BASE_DIR, "user_info.pkl")
os.makedirs(FACE_SAVE_PATH, exist_ok=True)

# 加载官方高精度人脸检测器
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml")

# ==================== 通用工具函数 ====================
defsave_image(img, save_path):
"""无损保存人脸图片,兼容中文路径"""
try:
        cv2.imencode('.jpg', img)[1].tofile(save_path)
return os.path.exists(save_path)
except:
returnFalse

defdraw_chinese_text(img, text, pos, color=(0,255,0), size=20):
"""解决OpenCV无法绘制中文问题"""
    img_pil = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    draw = ImageDraw.Draw(img_pil)
    font = ImageFont.truetype("simhei.ttf", size)
    draw.text(pos, text, font=font, fill=color)
return cv2.cvtColor(np.array(img_pil), cv2.COLOR_RGB2BGR)

defpreprocess_face(face_img):
"""人脸图像预处理,抗光线干扰,提升识别精度"""
    face_img = cv2.resize(face_img, (100100))
    face_img = cv2.equalizeHist(face_img)
return face_img

# ==================== 用户数据管理模块 ====================
defsave_users(data):
"""持久化保存用户数据"""
with open(USER_DATA_FILE, "wb"as f:
        pickle.dump(data, f)

defload_users():
"""加载并校验用户数据,自动清理失效数据"""
ifnot os.path.exists(USER_DATA_FILE):
return {}
try:
        users = pickle.load(open(USER_DATA_FILE, "rb"))
# 过滤失效人脸数据
        valid = {k:v for k,v in users.items() if os.path.exists(v)}
        save_users(valid)
return valid
except:
return {}

defregister_user(username, face_img):
"""人脸注册核心逻辑"""
    username = username.strip()
ifnot username:
returnFalse"用户名不能为空!"
    users = load_users()
if username in users:
returnFalse"该用户已注册!"
    img_path = os.path.join(FACE_SAVE_PATH, f"{username}.jpg")
ifnot save_image(face_img, img_path):
returnFalse"图片保存失败!"
    users[username] = img_path
    save_users(users)
returnTrue"✅ 注册成功!"

# ==================== 高精度人脸识别核心算法 ====================
defrecognize_face(face_roi, users):
"""人脸匹配识别,返回匹配用户名"""
ifnot users:
return"未知"
try:
        current = preprocess_face(face_roi)
        best_name = "未知"
        max_score = 0
# 遍历所有注册用户进行匹配
for name, path in users.items():
            saved = cv2.imread(path, 0)
if saved isNone:
continue
            saved = preprocess_face(saved)
# 归一化匹配算法,抗干扰能力更强
            score = cv2.matchTemplate(current, saved, cv2.TM_CCOEFF_NORMED)[0][0]
# 高分阈值过滤,避免误识别
if score > 0.68and score > max_score:
                max_score = score
                best_name = name
return best_name
except:
return"未知"

# ==================== 可视化GUI主系统 ====================
classFaceSystem:
def__init__(self, root):
        self.root = root
        self.root.title("人脸识别签到系统")
        self.root.geometry("850x780")
        self.root.resizable(FalseFalse)
        self.users = load_users()
        self.unknown_prompted = False

# 初始化摄像头
        self.cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)
        self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
        self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)

# 摄像头画面展示画布
        self.canvas = tk.Label(root, relief=tk.SOLID, bd=2)
        self.canvas.pack(pady=10)

# 功能按钮区域
        btn_frame = tk.Frame(root)
        btn_frame.pack(pady=5)
        tk.Button(btn_frame, text="📷 注册人脸", command=self.register_face, font=("微软雅黑"12), width=14).grid(row=0, column=0, padx=10)
        tk.Button(btn_frame, text="❌ 退出程序", command=self.exit_app, font=("微软雅黑"12), width=14).grid(row=0, column=1, padx=10)

# 签到数据表格标题
        tk.Label(root, text="📊 在线用户列表", font=("微软雅黑"12"bold")).pack(pady=2)

# 签到数据表格
        columns = ("name""status""time")
        self.tree = ttk.Treeview(root, columns=columns, show="headings", height=8)
        self.tree.heading("name", text="姓名")
        self.tree.heading("status", text="状态")
        self.tree.heading("time", text="签到时间")
        self.tree.column("name", width=220, anchor=tk.CENTER)
        self.tree.column("status", width=160, anchor=tk.CENTER)
        self.tree.column("time", width=320, anchor=tk.CENTER)
        self.tree.pack(pady=5)

# 循环刷新摄像头画面
        self.update_frame()

defupdate_frame(self):
"""实时更新摄像头画面、识别人脸、更新签到数据"""
        ret, frame = self.cap.read()
if ret:
            gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 高精度人脸检测
            faces = face_cascade.detectMultiScale(gray, scaleFactor=1.05, minNeighbors=6, minSize=(40,40))

# 清空历史签到数据
for item in self.tree.get_children():
                self.tree.delete(item)

            has_registered = False
# 遍历检测到的所有人脸
for (x, y, w, h) in faces:
                roi = gray[y:y+h, x:x+w]
                name = recognize_face(roi, self.users)
                now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")

# 区分已注册/未注册用户
if name != "未知":
                    has_registered = True
                    color = (02550)
                    show_text = f"{name} 在线中"
                    self.tree.insert("", tk.END, values=(name, "✅ 已签到", now))
else:
                    color = (00255)
                    show_text = "未注册用户"

# 绘制人脸框和文字
                cv2.rectangle(frame, (x, y), (x+w, y+h), color, 2)
                frame = draw_chinese_text(frame, show_text, (x, y-10), color, 18)

# 未注册人脸弹窗提示(仅弹窗一次)
if len(faces) > 0andnot has_registered andnot self.unknown_prompted:
                res = messagebox.askquestion("提示""检测到未注册人脸!是否注册?")
if res == "yes":
                    self.register_face()
                self.unknown_prompted = True

# 无人脸时重置弹窗状态
if len(faces) == 0:
                self.unknown_prompted = False

# 画面转换适配Tkinter展示
            frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
            imgtk = ImageTk.PhotoImage(image=Image.fromarray(frame_rgb))
            self.canvas.imgtk = imgtk
            self.canvas.configure(image=imgtk)

# 10ms刷新一次画面,实时流畅
        self.root.after(10, self.update_frame)

defregister_face(self):
"""手动人脸注册功能"""
        ret, frame = self.cap.read()
ifnot ret:
            messagebox.showerror("错误""摄像头读取失败!")
return
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        faces = face_cascade.detectMultiScale(gray, 1.056, minSize=(40,40))
if len(faces) == 0:
            messagebox.showwarning("提示""未检测到人脸!")
return
# 弹窗输入用户名
        username = simpledialog.askstring("注册""请输入姓名:")
ifnot username:
return
# 截取人脸区域并注册
        x, y, w, h = faces[0]
        success, msg = register_user(username, gray[y:y+h, x:x+w])
if success:
            self.users = load_users()
            self.unknown_prompted = True
            messagebox.showinfo("成功", msg)

defexit_app(self):
"""退出程序,释放摄像头资源"""
        self.cap.release()
        self.root.destroy()

if __name__ == "__main__":
    root = tk.Tk()
    app = FaceSystem(root)
    root.mainloop()

三、项目核心知识点总结

本项目是Python计算机视觉+GUI开发+数据持久化的综合性实战项目,涵盖多个核心技术知识点,非常适合新手进阶学习:

  1. OpenCV机器视觉技术:掌握摄像头调用、图像灰度转换、人脸检测、图像预处理(直方图均衡化)、图像绘制、模板匹配算法的实战应用,理解传统机器视觉的人脸识别原理。

  2. 图像优化技巧:学会解决OpenCV中文乱码、中文无法绘制、光线干扰、中文路径报错等工程实战常见问题。

  3. 本地数据持久化:掌握pickle模块二进制数据存储、读取、校验、清理的完整流程,无需数据库实现轻量化数据管理。

  4. Tkinter GUI开发:熟练使用Python内置GUI框架,实现窗口布局、按钮交互、表格数据展示、画面实时刷新、弹窗提示等可视化功能。

  5. 工程逻辑优化:掌握异常捕获、状态锁控制、资源释放、冗余数据清理等项目优化思维,提升代码稳定性和交互体验。

  6. 算法调优:理解归一化模板匹配算法的优势,掌握阈值调优技巧,提升人脸识别准确率。


四、项目测试步骤 + 拓展应用场景

1. 完整部署测试步骤(零基础可操作)

  1. 环境依赖安装:打开终端,执行命令安装所需库:pip install opencv\-python pillow numpy

  2. 字体适配:电脑自带simhei.ttf黑体字体(Windows默认自带),若缺失可自行下载放入代码同级目录。

  3. 运行程序:保存代码为.py文件,直接运行,程序自动创建人脸存储文件夹和数据文件。

  4. 人脸注册测试:点击「注册人脸」按钮,输入姓名,正对摄像头完成人脸采集注册。

  5. 识别签到测试:正对摄像头,系统自动识别身份,表格实时展示姓名、已签到状态、签到时间。

  6. 异常测试:未注册人脸对准摄像头,测试自动弹窗注册提示功能;重启程序测试数据是否持久化保存。

  7. 退出测试:点击退出按钮,检测摄像头是否正常释放资源,程序无残留进程。

2. 项目拓展应用场景

本项目可基于原有代码快速二次开发,适配多种智能场景,实用性极强:

  • 校园场景:班级日常考勤、晚自习签到、社团活动登记、实验室人员出入登记。

  • 办公场景:小型创业团队工位打卡、办公室人员在岗监测,替代付费考勤软件。

  • 安防场景:家用简易人脸门禁、工作室人员权限验证、私人设备开机人脸校验。

  • 学习项目:Python课程设计、计算机视觉实训、本科/专科毕设项目,代码完整、功能完善、答辩通过率高。

  • 功能拓展方向:可新增签到数据导出Excel、迟到早退统计、多人同时签到、人脸删除、密码管理、后台日志记录等功能。


📝 结语

这款离线人脸识别签到系统兼顾颜值、功能、稳定性、实用性,代码通俗易懂、结构清晰,不仅可以直接落地使用,还非常适合新手学习机器视觉和GUI开发。无需复杂算法、无需联网、零成本部署,完美适配学生、小型团队的各类考勤需求,是一款超高性价比的Python实战项目!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 09:31:44 HTTP/2.0 GET : https://f.mffb.com.cn/a/495458.html
  2. 运行时间 : 0.151826s [ 吞吐率:6.59req/s ] 内存消耗:4,711.22kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=d276ff4a8ed839c178a4de70267b3149
  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.000397s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000677s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000279s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000271s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000622s ]
  6. SELECT * FROM `set` [ RunTime:0.000566s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000683s ]
  8. SELECT * FROM `article` WHERE `id` = 495458 LIMIT 1 [ RunTime:0.032328s ]
  9. UPDATE `article` SET `lasttime` = 1783042304 WHERE `id` = 495458 [ RunTime:0.000774s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000302s ]
  11. SELECT * FROM `article` WHERE `id` < 495458 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.014518s ]
  12. SELECT * FROM `article` WHERE `id` > 495458 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000557s ]
  13. SELECT * FROM `article` WHERE `id` < 495458 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.006601s ]
  14. SELECT * FROM `article` WHERE `id` < 495458 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.009277s ]
  15. SELECT * FROM `article` WHERE `id` < 495458 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.016449s ]
0.154125s