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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容