36 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|  | from mysql.connector import Error as MySQLError | |||
|  | 
 | |||
|  | from ds.db import db | |||
|  | 
 | |||
|  | 
 | |||
|  | def get_all_sensitive_words() -> list[str]: | |||
|  |     """
 | |||
|  |     获取所有敏感词(返回纯字符串列表、用于过滤业务) | |||
|  | 
 | |||
|  |     返回: | |||
|  |         list[str]: 包含所有敏感词的数组 | |||
|  | 
 | |||
|  |     异常: | |||
|  |         MySQLError: 数据库操作相关错误 | |||
|  |     """
 | |||
|  |     conn = None | |||
|  |     cursor = None | |||
|  |     try: | |||
|  |         # 获取数据库连接 | |||
|  |         conn = db.get_connection() | |||
|  |         cursor = conn.cursor(dictionary=True) | |||
|  | 
 | |||
|  |         # 执行查询(只获取敏感词字段、按ID排序) | |||
|  |         query = "SELECT name FROM sensitives ORDER BY id" | |||
|  |         cursor.execute(query) | |||
|  |         sensitive_records = cursor.fetchall() | |||
|  | 
 | |||
|  |         # 提取敏感词到纯字符串数组 | |||
|  |         return [record['name'] for record in sensitive_records] | |||
|  | 
 | |||
|  |     except MySQLError as e: | |||
|  |         # 数据库错误向上抛出、由调用方处理 | |||
|  |         raise MySQLError(f"查询敏感词列表失败: {str(e)}") from e | |||
|  |     finally: | |||
|  |         # 确保数据库连接正确释放 | |||
|  |         db.close_connection(conn, cursor) |