python连接mysql

首先需要导入驱动模块

打开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()

========================================================================

你可能感兴趣的:(python连接mysql)