Spaces:
Paused
Paused
| 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() |