|
|
import pymysql from fastapi import HTTPException, status DB_CONFIG = { "host": "111.229.38.129", "user": "root", "password": "zl981023", "database": "blogapi", "charset": "utf8mb4", "cursorclass": pymysql.cursors.DictCursor, }
# 创建数据库连接
def create_connection(): return pymysql.connect(**DB_CONFIG)
# 执行 SQL 查询
def execute_query(query, params=None, fetchall=False): conn = create_connection() with conn.cursor() as cursor: cursor.execute(query, params) if fetchall: result = cursor.fetchall() else: result = cursor.fetchone() conn.commit() conn.close() return result
# 查询单个数据
def fetch_one(query, params=None): result = execute_query(query, params) return result if result else None
# 查询所有数据
def fetch_all(query, params=None, fetchall=True): return execute_query(query, params, fetchall)
# 验证数据是否存在,不存在抛出异常 def raise_if_not_found(item, message="Item not found"): if not item: raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, detail=message )
# 验证唯一,非唯一抛出异常
def raise_if_exists(item, message="Item already exists"): if item: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail=message )
# 成功响应数据 def response_success(data={}, message="data do success"): if not data: return { "status": status.HTTP_200_OK, "message": message, } else: return { "status": status.HTTP_200_OK, "message": message, "data": data }
|