zoukankan      html  css  js  c++  java
  • 封装操作mysql、redis

    封装操作mysql:

    import pymysql
    
    class MyDb:
        def __init__(self,host,password,user,db,port=3306,charset='utf8',autocommit=True):
            try:
                self.coon = pymysql.connect(host=host,password=password,
                                            user=user,db=db,port=port,
                                            charset=charset,autocommit=autocommit)
            except Exception as e:
                print('数据库连接失败!错误信息是%s'%e)
                raise Exception('数据库连接失败!错误信息是%s'%e)
                #主动抛出一个异常
            else:
                self.cur = self.coon.cursor(pymysql.cursors.DictCursor)
    
        def select_all(self,sql):
            try:
                self.cur.execute(sql)
            except Exception as e:
                res = 'sql语句错误,%s
    ,错误的sql是【%s】'%(e,sql)
                print(res)
            else:
                res = self.cur.fetchall()
            return res
        def select_one(self,sql):
            try:
                self.cur.execute(sql)
            except Exception as e:
                res = 'sql语句错误,%s
    ,错误的sql是【%s】'%(e,sql)
                print(res)
            else:
                res = self.cur.fetchone()
            return res
        def other_sql(self,sql):
            try:
                self.cur.execute(sql)
            except Exception as e:
                res = 'sql语句错误,%s
    ,错误的sql是【%s】'%(e,sql)
                print(res)
                return res
        def close(self):
            print('拜拜啦')
            self.cur.close()
            self.coon.close()
    
    
    
    my = MyDb('ip','fsdf','sdfsd','sdfsdf')
    my.select_one('select * from xx;')
    my.select_one('select * from xx;')
    my.select_one('select * from xx;')
    my.close()
    #1、先测能不能执行sql
    #2、数据连接异常的

    封装操作redis:

    import redis
    
    class MyRedis:
        def __init__(self,host,password,port=6379,db=0):
            self.r = redis.Redis(host=host,password=password,port=port,db=db)
        def op_str(self,k,v=None,ex=-1):
            if v:
                self.r.set(k,v,ex)#set
            else:
                res = self.r.get(k)
                if res:
                    return res.decode()
        def op_hash(self,name,k=None):
            if k:#判断是取单个值
                res = self.r.hget(name,k)
                if res:#判断是否有返回值
                    return res.decode()
            else:#取key里面所有的值
                res = {}
                for k,v in self.r.hgetall(name).items():
                    res[k.decode()] = v.decode()
                return res
        def my_type(self,k):
            return self.r.type(k).decode()
  • 相关阅读:
    学习也可以有趣,喜欢上pandas,你该这么学!No.4
    Umbral:新型分散式密钥管理系统的代理重加密方案
    同态加密
    解决方案 | MySQL DBA主从复制出错怎么办?
    干货分享 | 史上最全Oracle体系结构整理
    点开,看一段,你就会喜欢上学习pandas,你该这么学!No.3
    mysql集群搭建(PXC)
    Centos7 离线安装mysql 5.6详细步骤
    tomcat别名配置多域名访问配置
    关于打印机状态的获取【转】
  • 原文地址:https://www.cnblogs.com/Noul/p/9392074.html
Copyright © 2011-2022 走看看