Spaces:
Sleeping
Sleeping
import pymysql | |
from config import Config | |
class Database: | |
def __init__(self): | |
self.conn = pymysql.connect( | |
host=Config.MYSQL_CONFIG['host'], | |
port=Config.MYSQL_CONFIG['port'], | |
user=Config.MYSQL_CONFIG['user'], | |
password=Config.MYSQL_CONFIG['password'], | |
charset='utf8mb4', | |
cursorclass=pymysql.cursors.DictCursor | |
) | |
self.init_db() | |
def init_db(self): | |
with self.conn.cursor() as cursor: | |
# 创建数据库 | |
cursor.execute(f"CREATE DATABASE IF NOT EXISTS {Config.MYSQL_CONFIG['database']}") | |
cursor.execute(f"USE {Config.MYSQL_CONFIG['database']}") | |
# 创建文件表 | |
cursor.execute(""" | |
CREATE TABLE IF NOT EXISTS files ( | |
id BIGINT PRIMARY KEY AUTO_INCREMENT, | |
original_name VARCHAR(255) NOT NULL, | |
stored_name VARCHAR(255) NOT NULL, | |
file_path VARCHAR(500) NOT NULL, | |
file_type VARCHAR(50), | |
file_size BIGINT, | |
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | |
UNIQUE KEY idx_path (file_path) | |
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci | |
""") | |
self.conn.commit() | |
def search_files(self, keyword): | |
with self.conn.cursor() as cursor: | |
cursor.execute(""" | |
SELECT * FROM files | |
WHERE original_name LIKE %s | |
OR file_path LIKE %s | |
ORDER BY created_at DESC | |
""", (f"%{keyword}%", f"%{keyword}%")) | |
return cursor.fetchall() |