要想和MySQL数据库交互,首先需要安装数据库驱动模块,python2和python3的数据库驱动是不同的。
python2中的数据库模块是MysqLdb,可以通过以下命令安装
sudo apt-get install python-mysql
在文件中引入模块
import MySQLdb
python3中模块名为PyMySQL,我用pip3安装的
sudo pip3 install PyMySQL
windows下的命令是
python -m pip3 install PyMySQL
然后是一些我碰到的问题:
1.Ubuntu下安装时用了pip,结果安装到py2.7版本了,在重安一次
2.windows下安装,因为有多个版本的python,会报错,解决方法是找一个版本管理工具,或者直接卸掉不用的版本,或者用pycharm
3.我刚安装完数据库模块的时候,pycharm找不到,然后到setting里去找 Project-->Project Interpreter,,然后右上角的设置图标,点开选择Add,点击System Interpreter,然后右上角有三个点号,点开找到python.exe,选择。pycharm还不太熟,只想到这种方法,有简单方法可以评论留言,谢谢。
接下来是我实现的对数据库模块的封装
# -*- coding:utf-8 -*-
import pymysql
class MySQLHelper(object):
""""""
def __init__(self, host, user, paw, db):
self.host = host
self.user = user
self.paw = paw
self.db = db
self.result = []
def connect(self):
self.conn = pymysql.connect(self.host, self.user, self.paw, self.db)
self.cursor = self.conn.cursor()
def close(self):
self.conn.close()
def execute_sql(self,sql):
try:
self.connect()
self.cursor.execute(sql)
self.conn.commit()
except Exception as e:
self.conn.rollback()
print(e)
self.close()
def search_one(self, sql):
try:
self.connect()
self.cursor.execute(sql)
self.result = self.cursor.fetchone()
print(self.result)
except Exception as e:
print(e)
self.close()
def search_all(self, sql):
try:
self.connect()
self.cursor.execute(sql)
self.result = self.cursor.fetchall()
for i in self.result:
print(i)
except Exception as e:
print(e)
self.close()
if __name__ == '__main__':
# 以下是测试
my_sql = MySQLHelper("地址", "用户名", "密码", "数据库名")
sql = """select * from student"""
my_sql.connect()
my_sql.search_all(sql)
print("hahah")