重构:模块化项目结构,分离配置、路由、摄像头管理器,添加健康检查,更新Dockerfile和启动脚本
This commit is contained in:
53
app/routes/main.py
Normal file
53
app/routes/main.py
Normal file
@@ -0,0 +1,53 @@
|
||||
"""
|
||||
主路由
|
||||
"""
|
||||
import logging
|
||||
from datetime import datetime
|
||||
from flask import render_template, jsonify, request
|
||||
from app.camera_manager import CameraManager
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# 创建摄像头管理器实例(全局)
|
||||
camera_manager = CameraManager()
|
||||
|
||||
def register_main_routes(app):
|
||||
"""注册主路由到Flask应用"""
|
||||
|
||||
@app.route('/')
|
||||
def index():
|
||||
"""主页面 - 显示6个摄像头的网格布局"""
|
||||
cameras = camera_manager.get_all_cameras()
|
||||
return render_template('index.html',
|
||||
cameras=cameras,
|
||||
current_time=datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
|
||||
|
||||
@app.route('/api/cameras')
|
||||
def get_cameras():
|
||||
"""获取摄像头列表API"""
|
||||
cameras = camera_manager.get_all_cameras()
|
||||
return jsonify(cameras)
|
||||
|
||||
@app.route('/api/refresh/<int:camera_id>', methods=['POST'])
|
||||
def refresh_camera(camera_id):
|
||||
"""刷新指定摄像头"""
|
||||
success = camera_manager.refresh_camera(camera_id)
|
||||
return jsonify({'success': success, 'camera_id': camera_id})
|
||||
|
||||
@app.route('/api/switch', methods=['POST'])
|
||||
def switch_camera():
|
||||
"""切换摄像头编号"""
|
||||
data = request.get_json()
|
||||
camera_id = data.get('camera_id')
|
||||
camera_number = data.get('camera_number', 'mixed')
|
||||
try:
|
||||
url = camera_manager.get_camera_url(camera_id, camera_number)
|
||||
return jsonify({'success': True, 'url': url})
|
||||
except Exception as e:
|
||||
return jsonify({'success': False, 'error': str(e)}), 400
|
||||
|
||||
@app.route('/api/login', methods=['POST'])
|
||||
def login():
|
||||
"""手动登录"""
|
||||
success = camera_manager.login()
|
||||
return jsonify({'success': success})
|
||||
Reference in New Issue
Block a user