from functools import wraps from flask import request, jsonify from utils.database import _get_pool def auto_db_connection(f): @wraps(f) def decorated_function(*args, **kwargs): pool = _get_pool() conn = pool._create_connection() try: result = f(*args, db_conn=conn, **kwargs) if hasattr(result, 'status_code'): return result return result except Exception as e: print(f'Database error in {f.__name__}: {str(e)}') conn.rollback() return jsonify({'error': '服务器内部错误'}), 500 finally: conn.close() return decorated_function def safe_db_operation(conn, operation, *args, **kwargs): try: return operation(*args, **kwargs) except Exception as e: print(f'Database operation error: {str(e)}') conn.rollback() raise