首页 > 技术文章 > 使用python操作数据库

ttj57 2020-08-29 16:23 原文

使用第三方库pymysql对数据库进行操作(可使用命令python -m pip install pymysql进行安装)

import pymysql#引用pymysql库
#配置数据库参数进行连接,其中host,port,user,password是必须要传入的参数
my_cnt = pymysql.connect(host='localhost',
port=3306,
user='root',
password='123456',
database='test',
charset='utf8')
my_data = my_cnt.cursor()#创建用于执行查询的新游标
my_data.execute('select * from test.user')#传入sql查询语句
my_cnt.commit()#提交执行
get_data = my_data.fetchall()#执行成功就遍历结果的每行数据,以元组返回
my_cnt.close()#关闭数据库连接
print(get_data)
如要远程访问数据库,需要开启数据库远程访问权限:
1.使用命令行登录MySQL
2.输入命令flush privileges;刷新权限
3.再输入命令GRANT ALL PRIVILEGES ON *(数据库).*(表) TO 'root'@'%' IDENTIFIED BY '123456';
4.再次输入命令flush privileges;刷新权限

封装:
class MysqlConnect:
# 初始化类对象,接收参数:数据库地址、接口、用户名、密码、数据库名、字符集,连接数据库
def __init__(self,host='localhost',port=3306,username=None,password=None,database='mysql',charset='utf8'):
self._host = host
self._port = port
self._user = username
self._password = password
self._database = database
self._charset = charset
# 连接数据库
try:
self._my_cnt = pymysql.connect(host=self._host,
port=self._port,
user=self._user,
password=self._password,
database=self._database,
charset=self._charset)
# 连接失败报错
except Exception:
raise Exception("Database connect fail, check the value of host, user, password, database and port")
#定义方法接收参数sql,执行sql语句进行数据库操作
def msq_sql(self,sql):
self._my_data = self._my_cnt.cursor()#创建用于执行查询的新游标
try:
self._my_data.execute(sql)#传入sql语句
self._my_cnt.commit()#提交执行
except Exception:#执行失败报错
raise Exception('ERROR 1064 (42000): You have an error in your SQL syntax; '
'check the manual that corresponds to your MySQL server '
'version for the right syntax to use near \'',sql,'\' at line 1')
else:
get_data = self._my_data.fetchall()#执行成功就遍历结果的每行数据,以元组形式返回
return get_data
finally:
self._my_cnt.close()#关闭数据库连接
if __name__ == '__main__':#代码入口,防止外部调用类对象时其它代码造成影响
mct=MysqlConnect(username='root',password='123456,',database='test')#实例化类,传入数据库参数
print(mct.msq_sql('select * from test.user'))
 


推荐阅读