首先需要导入驱动模块
打开cmd导入模块 pip install mysqldb(pymysql)
python2.x版本--------->mysqldb
python3.x版本---------->pymysql
python调用MySQL数据库总共五步
1、导入模块(驱动) pymysql mysqldb
2、获取连接 connect
3、获取游标cursor
4、执行sql execute 并且返回结果
5、关闭资源
====================================================================
#python 调用mysql帮助类 连接数据库 创建数据查询更新的方法
#创建一个数据库帮助类
#导入pymysql模块
import pymysql
#创建类
class sqlHelper:
#初始化属性
def __init__(self,host,db,user,pwd):
self.host = host
self.port = 3306
self.db = db
self.user = user
self.pwd = pwd
self.charset = 'utf8'
#创建数据库连接 创建游标
def connection(self):
self.conn = pymysql.connect(host = self.host,port = self.port,db = self.db,user = self.user,
password = self.pwd,charset = self.charset)
self.cursor = self.conn.cursor()
return 'OK'
#创建查询一条数据的方法
def queryOne(self,sql,params):
#首先连接数据库 获取游标
try:
self.connection()
#执行sql语句
count = self.cursor.execute(sql,params)
#返回执行结果
res = self.cursor.fetchone()
return count,res
except Exception as ex:
print('失败,失败信息是:',ex)
finally:
#调用关闭资源的方法
self.closes()
#创建查询多条数据的方法
def queryAll(self,sql,params):
try:
#连接数据库
self.connection()
#执行sql语句
count = self.cursor.execute(sql,params)
#获取结果
res = self.cursor.fetchall()
return count,res
except Exception as e:
print('查询失败 失败信息是:',e)
finally:
#调用关闭资源的方法
self.closes()
#创建修改数据库的方法
def update(self,sql,params):
try:
# 连接数据库
self.connection()
# 执行sql语句
count = self.cursor.execute(sql,params)
#把事物(更新的信息写入数据库)
self.conn.commit()
return count
except Exception as e:
print('查询失败 失败信息是:', e)
#如果更新失败 数据库就返回到更新之前的数据
self.conn.rollback()
finally:
# 调用关闭资源的方法
self.closes()
#定义关闭资源的方法
def closes(self):
if self.cursor != None:
self.cursor.close()
if self.conn != None:
self.conn.close()
================================================================================================
测试数据库帮助类的文档:
'''
python调用mysql分为五个步骤
1、导入pymysql模块
2、获取连接 connect
3、获取游标 curs
4、执行SQL execute 并返回结果
5、关闭资源
'''
#定义用户操作数据库的一些方法
import sqlHelper
import sys
#创建连接对象 host,db,user,pwd
helper = sqlHelper.sqlHelper('localhost','db_py1712','root','root')
#print(helper.connection())
# a,s = helper.queryOne('select * from t_stumessage',[])
# print(s)
# a = helper.update('insert into t_stumessage VALUES (uuid() ,%s,%s,%s,%s,%s)',['陈乐乐',123456,21,'男','万方学院'])
# print(a)
# a,s = helper.queryAll('select * from t_stumessage',[])
# print(s)
#用户注册
def register(user):
#首先查询数据库中是否存在该用户名
#查询表中所有用户名
count,res = helper.queryAll('select username from t_stumessage',[])
#遍历元组 判断输入的用户名是否存在
bn = False
for u in res:
# print(u)
# print(type(u))
if u[0] != user:
bn = True
if bn == False:
pwd = int(input('请输入密码'))
age = int(input('请输入年龄'))
sex = input('请输入性别')
school = input('请输入学校名称')
#把用户输入的信息写如到数据库表中
# s = helper.connection()
# print(s)
count = helper.update('insert into t_stumessage VALUES (uuid() ,%s,%s,%s,%s,%s)',[user,pwd,age,sex,school])
if count > 0:
print('注册成功')
else:
print('注册失败')
else:
print('你输入的用户名已经存在,请重新输入')
#register('王少松')
#用户登录
def login(user,pwd):
#查询表中的用户名和密码 判断与用户输入的信息是否匹配
count,res = helper.queryAll('select username,pwd from t_stumessage ',[])
return count,res
#遍历res
# bn = False
# for u in res:
# if u[0] == user and u[1] == pwd:
# bn =True
# if bn == True:
# print('登录成功')
# else:
# print('用户名或密码错误,登录失败')
# u = input()
# s = input()
# login(u,s)
#用户列表 根据用户名查看用户自己的基本信息
def messages(user):
count,res = helper.queryOne('select * from t_stumessage where userName = %s',(user,))
return count,res
# if count > 0:
# return res
# else:
# print('查询失败')
#messages('赵娇娇')
#用户修改 根据用户名修改密码
def update(user,pwd):
count = helper.update('update t_stumessage set pwd = %s WHERE username = %s',[pwd,user])
#print(count)
if count > 0:
print('修改成功')
else:
print('修改失败')
#update('赵娇娇','123123')
#用户删除 根据用户名删除用户信息
def dels(user):
count = helper.update('delete from t_stumessage WHERE username = %s',(user,))
if count > 0:
print('删除成功')
else:
print('删除失败')
#dels('赵娇娇')
#用户退出
def exit():
print('退出')
sys.exit()
#exit()
========================================================================