import sqlite3 import sys import pandas as pd from pandas import DataFrame conn = sqlite3.connect(sys.path[0]+"/network.db") def execute_sql(sql): """ 执行sql语句 :param sql: :return: """ cursor = conn.cursor() cursor.execute(sql) conn.commit() def search(sql) -> DataFrame: return pd.read_sql(sql, conn) def delete_obj(obj_id): cursor = conn.cursor() delete_obj_sql = f"delete from sim_objs where ObjID='{obj_id}'" cursor.execute(delete_obj_sql) delete_conn_sql = f"delete from sim_conn where conn_id in (select conn_id from conn_config where node_id='{obj_id}')" cursor.execute(delete_conn_sql) conn.commit() def truncate_db(): init_database() def init_database(): cursor = conn.cursor() cursor.execute(""" DROP TABLE IF EXISTS `conn_config`; """) cursor.execute(""" CREATE TABLE `conn_config` ( `conn_id` varchar(55) NULL DEFAULT NULL, `node_id` varchar(55) NULL DEFAULT NULL, `node_ifs` int(0) NULL DEFAULT NULL, `ip` varchar(55) NULL DEFAULT NULL, `mac` varchar(128) NULL DEFAULT NULL, `conn_port` varchar(32) NULL DEFAULT NULL, `addr` varchar(255) NULL DEFAULT NULL, CONSTRAINT `conn_config_sim_conn_conn_id_fk` FOREIGN KEY (`conn_id`) REFERENCES `sim_conn` (`conn_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ; """) cursor.execute(""" DROP TABLE IF EXISTS `mac_table`; """) cursor.execute(""" CREATE TABLE `mac_table` ( `obj_id` varchar(55) NULL DEFAULT NULL, `node_ifs` int(0) NULL DEFAULT NULL, `mac` varchar(55) NULL DEFAULT NULL, CONSTRAINT `mac_table_sim_objs_ObjID_fk` FOREIGN KEY (`obj_id`) REFERENCES `sim_objs` (`ObjID`) ON DELETE CASCADE ON UPDATE CASCADE ) ; """) cursor.execute(""" DROP TABLE IF EXISTS `router_table`; """) cursor.execute(""" CREATE TABLE `router_table` ( `obj_id` varchar(55) NULL DEFAULT NULL, `node_ifs` int(0) NULL DEFAULT NULL, `segment` varchar(55) NULL DEFAULT NULL, CONSTRAINT `router_table_sim_objs_ObjID_fk` FOREIGN KEY (`obj_id`) REFERENCES `sim_objs` (`ObjID`) ON DELETE CASCADE ON UPDATE CASCADE ) ; """) cursor.execute(""" DROP TABLE IF EXISTS `sim_conn`; """) cursor.execute(""" CREATE TABLE `sim_conn` ( `conn_id` varchar(255) NOT NULL , `ConfigCorrect` int(0) NULL DEFAULT NULL , PRIMARY KEY (`conn_id`) ) ; """) cursor.execute(""" DROP TABLE IF EXISTS `sim_objs`; """) cursor.execute(""" CREATE TABLE `sim_objs` ( `ObjID` varchar(50) NOT NULL, `ObjType` int(0) NULL DEFAULT NULL, `ObjLabel` varchar(20) NULL DEFAULT NULL, `ObjX` int(0) NULL DEFAULT NULL, `ObjY` int(0) NULL DEFAULT NULL, `ConfigCorrect` int(0) NULL DEFAULT NULL, PRIMARY KEY (`ObjID`) ) ; """) conn.commit() if __name__ == '__main__': init_database()