您所在位置: 首页> 学习资讯> 学习课程

python培训 | python教程之pymysql及DB类的实现

百知教育 学习课程 2019-12-04 06:15:23

一、安装使用:pip install pymysql

一、安装使用


pip install pymysql



conn=pymysql.connect(user='root',password='123', database='laoleiphp', charset='utf8')    

cursor=conn.cursor()    

sql="select * from sky_guest limit 10 "    

cursor.execute(sql)    

lists=cursor.fetchall()    

sql="insert into sky_guest set title='测试insert' "    

cursor.execute(sql)    

conn.commit()    

cursor.close()    

conn.close()


二、Connection Object


 1、连接  


conn=pymysql.connect(user='root', password='123', database='laoleiphp', charset='utf8mb


2、事务   



conn.begin()     

conn.commit()    

conn.rollback()



3、关闭连接


conn.close()



三、cursor  Object



1、创建游标


cursor=conn.cursor(ops)


2、执行sql


  cursor.execute(sql,(id))    
  
  cursor.excute("select id from sky_guest limit %s",(4))



 3、获取结果


 cursor.fetchall()

 cursor.fetchone()


 4、关闭游标


cursor.close()


5、获取自增id 新增数据


cursor.lastrowid



四、游标


1、默认类型 cursor 元组的方式保存

2、DictCursor 以字典的形式保存    


cursor = conn.cursor(pymysql.cursors.DictCursor)



 3、SSCursor和SSDictCursor 


 流式游标会陆陆续续一条一条得返回查询数据,所以这类游标适用于内存低、网络带宽小、数据量大的应用场景中



cursor = conn.cursor(pymysql.cursors.SSCursor) 

cursor = conn.cursor(pymysql.cursors.SSDictCursor)




五、DB类实现

    setDb   设置数据库连接

    query   执行sql语句

    getAll  获取所有行

    getRow  获取一行

    getOne  获取一个字段

    getCols 获取一列

    insert  插入数据 返回自增id

    update  更新数据

    delete  删除数据

    close   关闭连接


CREATE TABLE `sky_guest` (

  `id` int(11) NOT NULL AUTO_INCREMENT,  `
  
  title` varchar(50) DEFAULT '' COMMENT '主题',  
  
  
  `status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '状态',  `
  
  telephone` varchar(15) NOT NULL DEFAULT '',  `
  
  createtime` datetime NOT NULL DEFAULT '2019-01-17 08:08:01' COMMENT '留言时间',  
  
  
 content` text COMMENT '留言内容', 
 
 reply_content` text COMMENT '回复内容',  `
 
 reply_time` datetime NOT NULL DEFAULT '2019-01-17 08:08:01' COMMENT '回复时间',  
 
 `nickname` varchar(16) NOT NULL DEFAULT '',  
 
 PRIMARY KEY (`id`)
 
 ) ENGINE=InnoDB AUTO_INCREMENT=82 DEFAULT CHARSET=utf8 COMMENT='留言板';



class DB:    def setDb(self,conn):        self.conn=conn    def query(self,sql,params=()):        cursor=self.conn.cursor()        cursor.execute(sql,params)        self.conn.commit()    def getAll(self,sql,params=()):        cursor = self.conn.cursor(cursor = pymysql.cursors.DictCursor)        cursor.execute(sql,params)        lists=cursor.fetchall()        return lists    def getCols(self,sql,params=()):        cursor = self.conn.cursor()        cursor.execute(sql,params)        lists=cursor.fetchall()        res=[]        if lists:            for item in lists:                res.append(item[0])            return res           def getRow(self,sql,params=()):        cursor = self.conn.cursor(cursor = pymysql.cursors.DictCursor)        cursor.execute(sql,params)        lists=cursor.fetchone()        return lists    def getOne(self,sql,params=()):        cursor = self.conn.cursor()        cursor.execute(sql,params)        row=cursor.fetchone()        if row:            return row[0]         def insert(self,sql,params=()):        cursor=self.conn.cursor()        cursor.execute(sql,params)        id=cursor.lastrowid        self.conn.commit()        return id    def update(self,sql,params=()):        cursor=self.conn.cursor()        cursor.execute(sql,params)        self.conn.commit()    def delete(self,sql,params=()):        cursor=self.conn.cursor()        cursor.execute(sql,params)        self.conn.commit()    
   def close(self):        self.conn.close()



python培训班:http://www.baizhiedu.com/python2019




上一篇:python培训 | 如何读取eeglab示例文件.set以及.locs文件?

下一篇:应届生去公司找个Java程序员的职位需要什么技能?

相关阅读