首页 > 数据库技术 > 详细

pymysq连接数据库

时间:2021-06-04 18:01:46      阅读:11      评论:0      收藏:0      [点我收藏+]
 1.1初识Pymysql
  Pymysql:是封装了mysql驱动的Python驱动,一个能使Python连接MySQL的库。  
?
  环境要求:Python version >= 3.4
?
  两种连接数据库的方法:PYMYSQL 和 mysql.connector
  1.2 Pymysql的安装

  Win键+X键在按I键,调出Windwows PowerShell 窗口,输入 pip install PyMysq

  回车 ,然后出现下图则安装成功。

技术分享图片

  1.3 查看版本

pip install PyMysql 然后回车 如下图所示:

技术分享图片

 

2.利用PyMysql连接数据库

步骤:

1.连接数据库

2.生成游标对象

3.执行sql语句

4.关闭游标

5.关闭连接

(
import pymysql
#连接数据库
conn=pymysql.connect(host = ‘127.0.0.1‘ # 连接名称,默认127.0.0.1
host=‘localhost‘
user = ‘root‘ # 用户名
passwd=‘password‘ # 密码
port= 3306 # 端口,默认为3306
db=‘test‘ # 数据库名称
charset=‘utf8‘ # 字符编码
)
cur = conn.cursor() # 生成游标对象
sql="select * from `student` " # SQL语句
cur.execute(sql) # 执行SQL语句
data = cur.fetchall() # 通过fetchall方法获得数据
for i in data[:2]: # 打印输出前2条数据
print (i)
cur.close() # 关闭游标
conn.close() # 关闭连接
2.1 对数据库的增删改查
import pymysql
?
# username : adil
# password : helloyyj
?
?
class DataBaseHandle(object):
   ‘‘‘ 定义一个 MySQL 操作类‘‘‘
?
   def __init__(self, host, username, password, database, port):
       ‘‘‘初始化数据库信息并创建数据库连接‘‘‘
       # 下面的赋值其实可以省略,connect 时 直接使用形参即可
       self.host = host
       self.username = username
       self.password = password
       self.database = database
       self.port = port
       self.db = pymysql.connect(
           host=self.host,
           user=self.username,
           password=self.password,
           db=self.database,
           port=self.port,
           charset="utf8"
?
      )
       self.cursor = self.db.cursor(pymysql.cursors.DictCursor)
?
?
?
   def insertDB(self, sql):
       ‘‘‘ 插入数据库操作 ‘‘‘
?
?
       try:
           # 执行sql
           self.cursor.execute(sql)
?
           # tt = self.cursor.execute(sql) # 返回 插入数据 条数 可以根据 返回值 判定处理结果
           # print(tt)
           self.db.commit()
?
           # query = ‘insert into 表名(列名1, 列名2, 列名3, 列名4, 列名5, 列名6) values(%s, %s, %s, %s, %s, %s)‘
       # self.cursor.execute(sql)
?
       except:
           # 发生错误时回滚
           self.db.rollback()
       finally:
           self.cursor.close()
?
   def deleteDB(self, sql):
       ‘‘‘ 操作数据库数据删除 ‘‘‘
?
       try:
           # 执行sql
           self.cursor.execute(sql)
           # tt = self.cursor.execute(sql) # 返回 删除数据 条数 可以根据 返回值 判定处理结果
           # print(tt)
           self.db.commit()
       except:
           # 发生错误时回滚
           self.db.rollback()
       finally:
           self.cursor.close()
?
   def updateDb(self, sql):
       ‘‘‘ 更新数据库操作 ‘‘‘
?
       try:
           # 执行sql
           self.cursor.execute(sql)
           # tt = self.cursor.execute(sql) # 返回 更新数据 条数 可以根据 返回值 判定处理结果
           # print(tt)
       except:
           # 发生错误时回滚
           self.db.rollback()
       finally:
           self.cursor.close()
?
   def selectDb(self, sql):
       ‘‘‘ 数据库查询 ‘‘‘
?
       try:
           self.cursor.execute(sql)  # 返回 查询数据 条数 可以根据 返回值 判定处理结果
?
           data = self.cursor.fetchall()  # 返回所有记录列表
?
           print(data)
?
           # 结果遍历
           for row in data:
               name = row["name"]
               age = row["age"]
               # 遍历打印结果
               print(‘age = %s, name = %s‘ % (age, name))
       except:
           print(‘Error: unable to fecth data‘)
       finally:
           self.cursor.close()
?
   def closeDb(self):
       ‘‘‘ 数据库连接关闭 ‘‘‘
       self.db.close()
?
?
if __name__ == ‘__main__‘:
   DbHandle = DataBaseHandle(‘localhost‘, ‘ztt‘, ‘123456‘, ‘rgzn2007‘, 3306)
   # DbHandle.insertDB("insert into students (name,age,gender) values (‘随便起名‘,19,‘男‘)")
   # DbHandle.deleteDB("delete from students where name=‘随便起名‘")
   DbHandle.selectDb("select * from students where id > 10")
?
?
?
   DbHandle.closeDb()
2.2.二次封装
import pymysql
?
?
# username : adil
# password : helloyyj
?
?
class DataBaseHandle(object):
   ‘‘‘ 定义一个 MySQL 操作类‘‘‘
?
   def __init__(self, host, username, password, database, port):
       ‘‘‘初始化数据库信息并创建数据库连接‘‘‘
       # 下面的赋值其实可以省略,connect 时 直接使用形参即可
       self.host = host
       self.username = username
       self.password = password
       self.database = database
       self.port = port
       self.db = pymysql.connect(
           host=self.host,
           user=self.username,
           password=self.password,
           db=self.database,
           port=self.port,
           charset="utf8"
?
      )
       self.cursor = self.db.cursor(pymysql.cursors.DictCursor)


   def select_info(self,sql):
       try:
           self.cursor.execute(sql)
?
           data=self.cursor.fetchall()
?
           return data
?
       except:
           print(‘Error:unable to fecth data‘)
       finally:
           self.cursor.close()
?
   def no_select_info(self,sql):
       try:
           result=self.cursor.execute(sql)
?
           print(result)
?
           self.db.commit()
?
           return result
?
       except Exception as e:
           self.db.rollback()
?
           raise e
?
       finally:
           self.cursor.close()
?

 

pymysq连接数据库

原文:https://www.cnblogs.com/zhangtongtong/p/14850333.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!