python 中如何编写删除MySQL数据库的脚本
1、思路:
①创建一个模块,用于运行主循环,包括一些菜单功能,及根据情况调用辅助模块的函数。
②创建辅助的模块,包括自定义的一些函数,例如,显示数据库的功能,删除数据库的功能等。

2、创建my_main.py文件,及my_tools.py文件,测试在主模块中调用辅助模块的功能,能顺利执行。
这就是大概的思路,然后在做修改,进一步美化输出界面,及完善各项功能。

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_databases():
def 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、可以根据此方法将创建数据库的功能添加进来。

1、如果要在命令提示符窗口显示设置的颜色需要安装。colorama模块。
from colorama import init
init(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文件。测试脚本成功。
