刚开始学习,若有不足,望指出,共同进步。
我是将增删查改封装成了两个函数:查询和增删改(修改),话不多说上代码,很多东西写在注释里面了。
import pymysql #导入mysql数据库包
def UI(): #定义函数名为UI的界面函数
a = int(input('1查询 2、修改 3、退出(输入1or2or3选择)>>')) #将输入的值转换为int型
if a == 1:
sql_select() #a的值为1的时候执行查询函数
elif a == 2:
sql_change() #a的值为2的时候执行修改函数
elif a == 3:
exit()
print('已退出!') #a的值为3的时候退出
else:
print('您的输入有误,请重新输入。')
def con(): #连接函数
ip = input('请输入主机地址:') #输入数据库地址
port = int(input('请输入端口号:')) #输入端口号
username = input('请输入用户名:') #输入用户名
pwd = input('请输入密码:') #输入密码
db = input('请输入库名:') #输入库名
charset = input('请输入默认字符集规则:') #输入字符集规则
conn = pymysql.connect(host=ip, port=port, user=username, password=pwd,database=db,charset=charset) #创建数据库连接对象
cur = conn.cursor() #通过数据库连接对象获取游标
return conn,cur
def sql_select(): #创建查询函数
conn, cur = con() #调用连接函数,直接获取数据库连接对象和游标
while True: #while循环体
sql = input('请输入操作:') #输入sql语句
cur.execute(sql) #执行sql语句
rest = cur.fetchall() #返回查询结果,fetchall()返回所有结果 、fetmany()返回多条结果、fetone()返回一条结果
#此处也可以用循环if条件判断来指定输出的结果数量
for select in rest: #for循环遍历查询出的每一条结果,结果会以元组的形式返还出来
print(*select) #解开元组,打印出结果
a = input('1、继续操作 2、返回 3、退出(输入1or2选择)>>') #用if判断接下来的操作
if int(a) == 1:
continue
elif int(a) == 2:
UI()
else:
cur.close() #关闭游标对象
conn.close() #关闭数据库连接
break #跳出循环
def sql_change(): #创建修改函数(可执行数据库的增删改)
conn,cur = con() #调用连接函数,直接获取数据库连接对象和游标
while True: #while循环体
sql = input('请输入操作:') #输入sql语句
cur.execute(sql) #执行sql语句
conn.commit() #提交事务
a = input('1、继续操作 2、返回 3、退出(输入1or2选择)>>') #用if判断接下来的操作
if int(a) == 1:
continue
elif int(a) == 2:
UI()
else:
cur.close() #关闭游标对象
conn.close() #关闭数据库连接
break #跳出循环
if __name__ == '__main__': #主函数
UI() #运行界面函数