2024-08-25 11:36:23 +08:00
|
|
|
from flask import Flask, render_template
|
2024-08-25 13:21:02 +08:00
|
|
|
from flask_socketio import SocketIO, emit
|
2024-08-25 11:36:23 +08:00
|
|
|
import sqlite3
|
2024-08-25 13:21:02 +08:00
|
|
|
import eventlet
|
2024-08-25 11:36:23 +08:00
|
|
|
|
|
|
|
app = Flask(__name__)
|
2024-08-25 13:21:02 +08:00
|
|
|
socketio = SocketIO(app, async_mode='eventlet')
|
2024-08-25 11:36:23 +08:00
|
|
|
|
|
|
|
# 从数据库中获取匹配日志记录
|
|
|
|
def get_match_logs(db_name="face_database.db"):
|
|
|
|
conn = sqlite3.connect(db_name)
|
|
|
|
c = conn.cursor()
|
2024-08-25 13:21:02 +08:00
|
|
|
c.execute("SELECT name, identity,image_path,match_time FROM match_logs") # 去掉了 image_path
|
2024-08-25 11:36:23 +08:00
|
|
|
logs = c.fetchall()
|
|
|
|
conn.close()
|
|
|
|
return logs
|
|
|
|
|
|
|
|
# 首页,展示匹配记录
|
|
|
|
@app.route('/')
|
|
|
|
def index():
|
|
|
|
logs = get_match_logs()
|
|
|
|
return render_template('index.html', logs=logs)
|
|
|
|
|
2024-08-25 13:21:02 +08:00
|
|
|
# 处理 WebSocket 连接
|
|
|
|
@socketio.on('connect')
|
|
|
|
def handle_connect():
|
|
|
|
print('Client connected')
|
|
|
|
emit('update', {'logs': get_match_logs()})
|
|
|
|
|
|
|
|
# 发送更新到客户端
|
|
|
|
def send_updates():
|
|
|
|
while True:
|
|
|
|
# 模拟实时数据更新
|
|
|
|
socketio.emit('update', {'logs': get_match_logs()}, broadcast=True)
|
|
|
|
eventlet.sleep(5) # 每 5 秒发送一次更新
|
|
|
|
|
2024-08-25 11:36:23 +08:00
|
|
|
if __name__ == '__main__':
|
2024-08-25 13:21:02 +08:00
|
|
|
socketio.start_background_task(send_updates)
|
|
|
|
socketio.run(app, debug=True)
|