python 中如何编写删除MySQL数据库的脚本
介绍利用python的pymysql模块来编写查看,删除,创建数据库的脚本。准备工作参考下面的经验引用。
工具/原料
python3.7版
pycharm社区版
1.脚本框架思路
1、思路:①创建一个模块,用于运行主循环,包括一些菜单功能,及根据情况调用辅助模块的函数。②创建辅助的模块,包括自定义的一些函数,例如,显示数据库的功能,删除数据库的功能等。
2、创建my_main.py文件,及my_tools.py文件,测试在主模块中调用辅助模块的功能,能顺利执行。这就是大概的思路,然后在做修改,进一步美化输出界面,及完善各项功能。
2.修改文件
1、在工具模块(tools.py) 定义一个界面开始的函数,显示功能菜单的说明;并在主运行模块中调用。def menu(): print('\033[1;31m'+'=' * 60) print('\t数据库操作系统 V1.0') print('\t功能:[0].退出系统,' '[1].查看数据库, ' '[2].删除数据库') print('=' * 60+'\033[0m')注:将输出字体附加颜色,美化输出界面。
2、在工具模块中导入PyMySQL模块, 定义查询数据库名称的函数 show_data水瑞侮瑜bases():de熠硒勘唏f show_databases(): conn = pymysql.connect(host='localhost', user='root', password='000') cursor = conn.cursor() cursor.execute('show databases;') result = cursor.fetchall() cursor.close() conn.close() for i in range(len(result)): print('\t'+result[i][0])运行主模块代码,显示了查询结果。
3、在工具模块中定义删除数据库的函数 drop_databases():def drop_database(): name = input('\t\033[4;32m输入要删除的数据库:\033[0m') conn = pymysql.connect(host='localhost', user='root', password='000') cursor = conn.cursor() cursor.execute('drop database %s' % name) cursor.close() conn.close() print('\t数据库[%s]已删除!'%name)测试删除db1数据库;
4、运行功能1查看数据库,或使用命令提示符窗口查看,db1已经删除。
5、删除数据库的函数需要修改,因为当输入了错误的数据库名字时会抛出异常。例如删除 db10.
6、使用try语句捕获异常,并调用自身,继续执行函数,直到输入正确退出,或输入0退出;try: cursor.execute('drop database %s' % name) print('\t数据库[%s]已删除!' % name)except Exception: cursor.execute('show errors') error = cursor.fetchone() if name == '0': return elif error['Code'] == 1064: print('\t\033[1;31m[%s]输入数据库语法错误,请重新输入,或0退出!\033[0m' % name) drop_database() elif error['Code'] == 1008: print('\t\033[1;31m[%s]数据库不存在,请重新输入,或0退出!\033[0m' % name) drop_database() else: print('\t\033[1;31m输入异常,请重新输入,或0退出!\033[0m') drop_database()测试输出,不再抛出异常。
7、可以根据此方法将创建数据库的功能添加进来。
3.使用pyinstaller 编译
1、如果要在命令提示符窗口显示设置的颜色需要安装。colorama模块。from colorama import initinit(autoreset=True)注:如果使用 input()函数中的字符串参数设置制表键\t,或设置颜色可能会乱码,不显示颜色,所以我这里取消了。暂时还没有找到办法。
2、①将这两个文件 my_main.py,及my_tools.py 单独存放于一个文件夹,如:本例中放入E:\dbsys 目录中。②在命令提示符窗口cd到此目录。③执行pyinstaller my_main.py 即可开始编译。
3、在 E:\dbsys\dist\my_main 目录下运行,my_main.exe文件。测试脚本成功。