美文网首页
python 使用 pymysql 存,改dic类型数据

python 使用 pymysql 存,改dic类型数据

作者: 王镇_ee87 | 来源:发表于2021-04-09 10:10 被阅读0次
    公司以前用的 django 的 orm ,后来为了解耦,想着改用mysql存数据,好久没用过了。踩到的坑,大家可以参考一下。

    注意 每条sql最后 一定要有 冒号 ;

    from dmp.mysql_demo.utils import MY_POOL
    import pymysql
    
    
    def create_conn():  # 连接池
        conn = MY_POOL.connection()
        cursor = conn.cursor(pymysql.cursors.DictCursor)
        return conn, cursor
    
    
    def new_update_one(dic, table_name, ziduan, zd):
        '''
    
        :param dic:   存入的 dic 数据
        :param table_name:  存入的表名
        :param ziduan:  修改的字段
        :param zd:      字段内容
        :return:         返回值
        '''
        conn, cur = create_conn()
        new_sql = f"update  {table_name} set "  # 增加
        del dic[ziduan]
        for key in dic:
            if "id" in key:
                new_sql += f" {key}={dic[key]} ,"
            else:
                new_sql += f" {key} = '{dic[key]}' ," # 每个修改的字段 要用' ,' 隔开
        new_sql = new_sql[:-1]   # 去掉最后的 ,
        new_sql += f" where {ziduan} = '{zd}' ;" # 加上修改条件 
        result = cur.execute(new_sql)
        conn.commit()
        close_conn(conn, cur)
        return result
    
    
    def new_insert_one(dic, table_name):
        '''
        :param dic:  存入的 dic 数据
        :param table_name:   表名
        :return:    返回值
        '''
        print('new insert one: ', dic)
        new_sql = f"insert into {table_name} {tuple(dic.keys())}"  # 增加
        print('new_sql: ', new_sql)
        sql = new_sql.replace("'", "")  # sql 中 字段不能带 "引号" 所以去掉
        sql += f"VALUE {tuple(dic.values())} ;"
        conn, cur = create_conn()
        result = cur.execute(sql)
        conn.commit()
        close_conn(conn, cur)
        return result
    
    

    相关文章

      网友评论

          本文标题:python 使用 pymysql 存,改dic类型数据

          本文链接:https://www.haomeiwen.com/subject/dtkikltx.html