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) |