feat: Flask 애플리케이션 모듈화 및 웹 대시보드 구현
- Flask Blueprint 아키텍처로 전환 (dashboard, upload, backup, status) - app.py 681줄 95줄로 축소 (86% 감소) - HTML 템플릿 모듈화 (base.html + 기능별 templates) - CSS/JS 파일 분리 (common + 기능별 파일) - 대시보드 기능 추가 (통계, 주간 예보, 방문객 추이) - 파일 업로드 웹 인터페이스 구현 - 백업/복구 관리 UI 구현 - Docker 배포 환경 개선 - .gitignore 업데이트 (uploads, backups, cache 등)
This commit is contained in:
57
app/blueprints/status.py
Normal file
57
app/blueprints/status.py
Normal file
@ -0,0 +1,57 @@
|
||||
# app/blueprints/status.py
|
||||
"""
|
||||
시스템 상태 블루프린트
|
||||
|
||||
역할:
|
||||
- 데이터베이스 연결 상태 확인
|
||||
- 업로드 폴더 상태 확인
|
||||
"""
|
||||
|
||||
from flask import Blueprint, jsonify
|
||||
import sys
|
||||
import os
|
||||
|
||||
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')))
|
||||
|
||||
from conf import db
|
||||
|
||||
status_bp = Blueprint('status', __name__, url_prefix='/api')
|
||||
|
||||
|
||||
@status_bp.route('/status', methods=['GET'])
|
||||
def get_status():
|
||||
"""
|
||||
시스템 상태 확인
|
||||
|
||||
응답:
|
||||
{
|
||||
'database': bool - 데이터베이스 연결 여부,
|
||||
'upload_folder': bool - 업로드 폴더 접근 여부
|
||||
}
|
||||
"""
|
||||
try:
|
||||
# 데이터베이스 연결 확인
|
||||
database_ok = False
|
||||
try:
|
||||
session = db.get_session()
|
||||
session.execute('SELECT 1')
|
||||
session.close()
|
||||
database_ok = True
|
||||
except Exception as e:
|
||||
print(f"Database connection error: {e}")
|
||||
|
||||
# 업로드 폴더 확인
|
||||
upload_folder = os.path.join(os.path.dirname(__file__), '..', '..', 'uploads')
|
||||
upload_folder_ok = os.path.isdir(upload_folder) and os.access(upload_folder, os.W_OK)
|
||||
|
||||
return jsonify({
|
||||
'database': database_ok,
|
||||
'upload_folder': upload_folder_ok
|
||||
})
|
||||
|
||||
except Exception as e:
|
||||
return jsonify({
|
||||
'error': str(e),
|
||||
'database': False,
|
||||
'upload_folder': False
|
||||
}), 500
|
||||
Reference in New Issue
Block a user