python连接MySQL数据库
进行连接之前我们可以先将连接类进行封装,方便后续的使用。
import pymysql
class connect_db():
'''
连接数据库
host_ = 数据库地址
name_ = 用户名
pwd_ = 密码
db_ = 数据库名
如果要连接的数据库有多个的话可以将地址、用户名、密码写成参数进行传值进来就可以
'''
def connect_(self, db_):
self.db = pymysql.connect(host_, name_, pwd_, db_) # 数据库连接
self.cursor = self.db.cursor() # 开启游标
self.cursor.execute('SET NAMES UTF8') # 编码格式
# 输入SQL语句
def input_sql(self, sql_):
self.cursor.execute(sql_)
# 输出数据
def output(self, state, amount):#amount = 要显示的数量
if state == 'one':
data = self.cursor.fetchone() # 读取sql语句运行的单条数据
elif state == 'all':
data = self.cursor.fetchall() # 读取sql语句运行的所有数据
elif state == 'chmany':
amount = int(amount)
data = self.cursor.fetchmany(amount) # 读取sql语句运行的多条数据
return data
# 事务
def affair_(self, select):
if select == '提交':
self.db.commit()
elif select == '回滚':
self.db.rollback()
# 关闭连接,执行完数据库的操作后最后进行关闭
def close_mysql(self):
self.cursor.close() # 关闭游标
self.db.close() # 断开数据库的连接
封装完成后我们就可以进行调用了
以下列举几个简单的示例:
import connect_mysql # 连接类的类名
# 连接数据库
db = connect_mysql.connect_db() # 实例化连接数据库类
db.connect_("db_name") # 连接数据库,输入数据库名
# 读取sql语句运行的单条数据,如果存在多条数据,只读取第一条
db.input_sql("select * from 表名") # SQL语句
data = db.output("one", "") # 返回一条数据
print(data)
# 读取sql语句运行的所有数据
db.input_sql("select * from 表名") # SQL语句
data = db.output("all", "") # 返回所有数据
for i in data: # 循环遍历数据
print(i[1]) # 【哪列字段】 下标从0开始,删除[1]可获取所有字段
# 读取sql语句运行的多条数据
db.input_sql("select * from 表名") # SQL语句
data = db.output("chmany", "2") # 返回2条数据
print(data)
# 事务
try:
db.input_sql("SELECT * from 表名 where 条件") # SQL语句
except Exception as e:
db.affair_("回滚") # 事务回滚
print('事务处理失败', e)
else:
db.affair_("提交") # 事务提交
print('事务处理成功')
# 运行完SQL语句后最好对数据库进行一个关闭操作
db.close_mysql() # 关闭mysql