mysql驱动
安装pymysql
pip3 install pymysql
建立一个Connect连接
Connection初始化常用参数 |
说明 |
host |
主机 |
user |
用户名 |
password |
密码 |
database |
数据库 |
port |
端口 |
import pymysql
# >建立一个连接依顺序给定初始化参数(host,user,password,database)
conn = pymysql.connect(‘192.168.189.151‘,‘root‘,‘root‘,‘test‘) # 返回一个Connection类的实例
# >建立连接一定要断开连接释放资源
conn.close()
# >怕连接出现问题,如果有异常需要把异常抛出
try:
conn = pymysql.connect(‘192.168.189.151‘,‘root‘,‘root‘,‘test‘) # 返回一个Connection类的实例
finally:
conn.close() # 断开连接释放资源
# >如果连接失败就不用在释放资源
conn = None
try:
conn = pymysql.connect(‘192.168.189.151‘,‘root‘,‘root‘,‘test‘) # 返回一个Connection类的实例
finally:
if conn: # 连接不成功conn值为none,条件为假不进入语句块
conn.close() # 断开连接释放资源
操作数据库
# >获取游标,操作数据库,必须使用游标,需要先获取一个游标对象
cursor = conn.cursor() # 返回一个新的游标对象,连接关闭前,游标对象可以反复使用
# >游标也需要释放资源
cursor.close()
# >使用游标操作数据库
sql = "insert into t values(10, ‘dean‘,30)" # 构建 一个sql语句
line = cursor.execute(sql) # 用cursor类实例,提供的execute方法,把sql语句给他就行了,执行后会返回一个影响的行数
print(line) # 这个行数愿意那就拿,不愿意拿就不要了
cursor.close()
# >在Connection类的__init__方法的中有一句话‘是否应该开启自动提交呢’
import pymysql
conn = None
try:
conn = pymysql.connect(‘192.168.189.151‘,‘root‘,‘root‘,‘test‘) # 返回一个Connection类的实例
print (conn.ping(False))
# 获取一个cursor游标
cursor = conn.cursor()
sql = "insert into t values(10, ‘dean‘,30)" # 构建 一个sql语句
line = cursor.execute(sql) # 用cursor类实例,提供的execute方法,把sql语句给他就行了,执行后会返回一个影响的行数
print(line) # 这个行数愿意那就拿,不愿意拿就不要了
cursor.close()
finally:
if conn: # 连接不成功conn值为none,条件为假不进入语句块
conn.close() # 断开连接释放资源
# autocommit: Autocommit mode. None means use server default. (default: False)
# 是否应该开启自动提交呢(默认是False),没有提交所以语句执行不成功,数据库没有插入数据
# 生产环境中不用开启,一般需要手动管理事务。
事务管理
# >Connection类有三个方法;rollback 回滚事务
conn.rollback()
# >Connection类有三个方法;begin开始事务
conn.begin()
# >Connection类有三个方法;conmit 将变更提交
conn.conmit()
# >添加事务,这样运行就可以操作表
import pymysql
conn = None
cursor =None
try:
conn = pymysql.connect(‘192.168.189.151‘,‘root‘,‘root‘,‘test‘) # 返回一个Connection类的实例
print (conn.ping(False))
# 获取一个cursor游标
cursor = conn.cursor()
sql = "insert into t values(10, ‘dean‘,30)" # 构建 一个sql语句
line = cursor.execute(sql) # 用cursor类实例,提供的execute方法,把sql语句给他就行了,执行后会返回一个影响的行数
print(line) # 这个行数愿意那就拿,不愿意拿就不要了
cursor.close()
conn.commit() # 如果没有异常,将变更提交
except:
conn.rollback() # except有任何异常,回滚事务,保证事务的原子性,一旦出现异常全部回滚
finally: # 有没有异常都执行
if cursor:
cursor.close() # 关闭游标,释放资源,cursor值为none,条件为假不进入语句块
if conn: # 连接不成功conn值为none,条件为假不进入语句块
conn.close() # 断开连接释放资源
数据库开发