用python创建对数据库进行增删改查的函数(加入了错误处理)

第一次的感觉不是很完善,现在加入了错误处理,后续可能还会改进,请多指教。
import pymysql                #导入mysql数据库包

def UI():                     #定义函数名为UI的界面函数
    a = input('1查询  2、修改 3、退出(输入1or2or3选择)>>')      #将输入的值转换为int型
    if a.isnumeric():
        if int(a) == 1:
            sql_select()          #a的值为1的时候执行查询函数
        elif int(a) == 2:
            sql_change()          #a的值为2的时候执行修改函数
        elif int(a) == 3:
            exit()
            print('已退出!')       #a的值为3的时候退出
        else:
            print('您的输入有误,请重新输入。')
    else:
        print('您的输入有误,请重新输入。')


def con():          #连接函数
    global ip,port,username,pwd,db,charset
    try:            #异常处理
        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
    except:         #异常处理
        print('以上输入的信息有误,请重新输入')
        con()

def sql_select():            #创建查询函数
    conn, cur = con()       #调用连接函数,直接获取数据库连接对象和游标
    while True:             #while循环体
        sql = input('请输入操作:')   #输入sql语句
        try:
            cur.execute(sql)            #执行sql语句
        except:  # 异常处理
            print('sql语句错误,请重新输入。')
            continue
        else:
            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循环体
        try:
            sql = input('请输入操作:')       #输入sql语句
            cur.execute(sql)                #执行sql语句
            conn.commit()                   #提交事务
        except:  # 异常处理
            print('sql语句错误,请重新输入。')
            continue
        else:
            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()                    #运行界面函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值