Resumen del blog: Python | Sistema de reconocimiento facial — Índice del blog
Dirección de GitHub: Su-Reconocimiento facial
Nota: consulte antes de leer este blog
Instalación de herramientas, configuración del entorno: Python | Sistema de reconocimiento facial—Introducción
Diseño de interfaz de usuario: Python | Sistema de reconocimiento facial — Diseño de interfaz de usuario
Procesamiento de eventos de interfaz de usuario: Python | Sistema de reconocimiento facial: procesamiento de eventos de interfaz de usuario
1. Operación de la base de datos
# -*- coding: utf-8 -*-
import pymysql
def init_conn():
conn = pymysql.connect(
host="127.0.0.1", # 数据库的IP地址
user="root", # 数据库用户名称
password="root", # 数据库用户密码
db="contest", # 数据库名称
port=3306, # 数据库端口名称
charset="utf8" # 数据库的编码方式
)
return conn
def execute_with_bool(sql_str, args=()):
conn = init_conn()
cursor = conn.cursor()
try:
cursor.execute(sql_str, args)
conn.commit()
return True
except Exception as e:
conn.rollback()
print(e)
return False
finally:
cursor.close()
def execute_with_list(sql_str):
conn = init_conn()
cursor = conn.cursor()
results = []
try:
cursor.execute(sql_str)
results = cursor.fetchall()
except Exception as e:
conn.rollback()
print(e)
finally:
cursor.close()
return results
def search_by_name(name):
return execute_with_list("select * from admin where name = " + name)
def delete_by_name(name):
return execute_with_bool("delete from warn where name = %s", name)
2. Inicio de sesión del administrador
# 管理员登录界面
class LoginWindow(QDialog, AdminLoginUi):
def __init__(self, parent=None):
super(LoginWindow, self).__init__(parent)
self.setupUi(self)
self.minimize_button.clicked.connect(self.showMinimized)
self.close_button.clicked.connect(self.cancel_login)
self.confirm_button.clicked.connect(self.search_user)
self.cancel_button.clicked.connect(self.cancel_login)
# 点击确认,搜索管理员
def search_user(self):
input_name = self.name_lineEdit.text()
input_password = self.password_lineEdit.text()
if input_name == "":
QMessageBox.about(self, '提示', '姓名不能为空')
elif input_password == "":
QMessageBox.about(self, '提示', '密码不能为空')
else:
row = AdminSqlUtil.search_by_name("\"" + input_name + "\"")
if row:
result = row[0]
password = result[1]
if input_password != password:
QMessageBox.about(self, '提示', '密码输入错误')
else:
global ADMIN_LOGIN_FLAG
ADMIN_LOGIN_FLAG = True
QMessageBox.about(self, '提示', '登录成功')
self.close_window()
else:
QMessageBox.about(self, '提示', '该用户不存在')
# 点击取消按钮
def cancel_login(self):
global ADMIN_LOGIN_FLAG
ADMIN_LOGIN_FLAG = False
self.close_window()
# 关闭窗口
def close_window(self):
self.name_lineEdit.setPlaceholderText("请输入姓名")
self.password_lineEdit.setPlaceholderText("请输入密码")
self.close()
3. Desbloqueo de usuario
# 用户解锁
class UnloadWindow(QDialog, AdminUnloadUi):
def __init__(self, parent=None):
super(UnloadWindow, self).__init__(parent)
self.setupUi(self)
self.minimize_button.clicked.connect(self.showMinimized)
self.close_button.clicked.connect(self.close_window)
self.confirm_button.clicked.connect(self.unload_user)
self.cancel_button.clicked.connect(self.close_window)
# 解锁用户
def unload_user(self):
input_name = self.name_lineEdit.text()
input_password = self.password_lineEdit.text()
if input_name == "":
QMessageBox.about(self, '提示', '姓名不能为空')
elif input_password == "":
QMessageBox.about(self, '提示', '密码不能为空')
else:
row = UserSqlUtil.search_by_name("\"" + input_name + "\"")
if row:
result = row[0]
password = result[1]
if input_password != password:
QMessageBox.about(self, '提示', '密码输入错误')
else:
if AdminSqlUtil.delete_by_name(row[0]):
QMessageBox.about(self, '提示', '解锁成功')
else:
QMessageBox.about(self, '提示', '解锁失败,请重试')
self.close_window()
else:
QMessageBox.about(self, '提示', '该用户不存在')
# 关闭窗口
def close_window(self):
self.name_lineEdit.setPlaceholderText("请输入姓名")
self.password_lineEdit.setPlaceholderText("请输入密码")
self.close()
4. Eliminación de usuarios
# 用户删除
class DeleteWindow(QDialog, AdminDeleteUi):
def __init__(self, parent=None):
super(DeleteWindow, self).__init__(parent)
self.setupUi(self)
self.minimize_button.clicked.connect(self.showMinimized)
self.close_button.clicked.connect(self.close_window)
self.confirm_button.clicked.connect(self.user_delete)
self.cancel_button.clicked.connect(self.close_window)
def user_delete(self):
input_name = self.name_lineEdit.text()
input_password = self.password_lineEdit.text()
if input_name == "":
QMessageBox.about(self, '提示', '姓名不能为空')
elif input_password == "":
QMessageBox.about(self, '提示', '密码不能为空')
else:
row = UserSqlUtil.search_by_name("\"" + input_name + "\"")
if row:
result = row[0]
password = result[1]
if input_password != password:
QMessageBox.about(self, '提示', '密码输入错误')
else:
flag = UserSqlUtil.delete_by_name(input_name)
if flag:
QMessageBox.about(self, '提示', '删除成功')
else:
QMessageBox.about(self, '提示', '删除失败,请重试')
self.close_window()
else:
QMessageBox.about(self, '提示', '该用户不存在')
# 关闭窗口
def close_window(self):
self.name_lineEdit.setPlaceholderText("请输入姓名")
self.password_lineEdit.setPlaceholderText("请输入密码")
self.close()
sigue leyendo:
Visualización de la pantalla de la cámara: sistema de reconocimiento facial - visualización de la pantalla de la cámara
Lógica del lado del cliente:
- Reconocimiento facial: Python | Sistema de reconocimiento facial: reconocimiento facial
- Detección de vida: Python | Sistema de reconocimiento facial - Detección de vida
- Desenfoque de fondo: Python | Sistema de reconocimiento facial - Desenfoque de fondo
- Detección de poses: Python | Sistema de reconocimiento facial - Detección de poses
- Comparación de rostros: Python | Sistema de reconocimiento facial - comparación de rostros
- Operaciones de usuario: Python | Sistema de reconocimiento facial—Operaciones de usuario
Nota: El código anterior es solo de referencia. Para ejecutarlo, consulte el código fuente de GitHub: Su-Face-Recognition