""" @project:DataBaseTableController @File:DataBaseTableController.py @IDE:PyCharm @Author:徐彬程 @Date:2024/1/30 11:20 """ from pymysql import OperationalError, ProgrammingError class DataBaseTableControllerClass: @classmethod def CreateField(self, connection, data): try: with connection.cursor() as cursor: cursor.execute(f'ALTER TABLE {data["table_name"]} ADD COLUMN ' + ' '.join(data["new_column"])) except OperationalError as e: return str(e) except ProgrammingError as c: return str(c) # 关闭连接 connection.close() @classmethod def DeleteField(self, connection, data): try: with connection.cursor() as cursor: cursor.execute(f'ALTER TABLE {data["table_name"]} DROP COLUMN ' + ' '.join(data["del_column"])) except OperationalError as e: return str(e) except ProgrammingError as c: return str(c) # 关闭连接 connection.close() @classmethod def UpdateField(self, connection, data): try: with connection.cursor() as cursor: cursor.execute( f'ALTER TABLE {data["table_name"]} MODIFY COLUMN ' + ' '.join(data["old_column"]) + ' '.join( data["new_column"])) except OperationalError as e: return str(e) except ProgrammingError as c: return str(c) # 关闭连接 connection.close() @classmethod def BuildDataBaseTableData(cls, request): table_name = request.data['table_name'] sets = 'utf8mb4' collate = 'utf8mb4_unicode_ci' old_table_name = '' new_table_name = '' auto_list = [] new_column = '' del_column = '' old_column = '' if 'sets' in request.data: sets = request.data['sets'] if 'collate' in request.data: collate = request.data['collate'] if 'old_table_name' in request.data: old_table_name = request.data['old_table_name'] if 'new_table_name' in request.data: new_table_name = request.data['new_table_name'] if 'auto_list' in request.data: auto_list = request.data['auto_list'] if 'new_column' in request.data: new_column = request.data['new_column'] if 'del_column' in request.data: del_column = request.data['del_column'] if 'old_column' in request.data: old_column = request.data['old_column'] return { "database_name": table_name, "sets": sets, "collate": collate, "old_table_name": old_table_name, "new_table_name": new_table_name, "auto_list": auto_list, "new_column": new_column, "del_column": del_column, "old_column": old_column }