用python创建对数据库进行增删查改的函数

刚开始学习,若有不足,望指出,共同进步。

我是将增删查改封装成了两个函数:查询和增删改(修改),话不多说上代码,很多东西写在注释里面了。

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()                    #运行界面函数

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值