今天在慕课网上学习了有关于python操作MySQL的相关知识,在此做些总结.python操作数据库还是相对比较简单的,由于python统一了各个数据库的接口程序,也就是所谓的python DB,所以无论使用何种数据可,都可以用统一的接口对数据库进行操作。操作中主要涉及连接对象的操作和游标的操作,前者主要是为了建立起python与数据库的数据交换通道,后者则是访问数据的游标,也可以理解为指针。数据库的相关结构化语言在python中均是以字符串的形式呈现的。另外注意回滚的重要性,一旦操作失败,所有操作都要回滚到之前的状态,否则会发生错误。
另外,在编写实例的时候,对于面向对象的编程思路又有了新的认识,自顶向下的程序编写模式非常有利于拆分程序的功能,分而治之。面向对象的封装性在此提醒的淋漓尽致!
代码如下,在原有基础上,我又增加了添加记录的功能。
#=utf8编码 进口MySQLdb 导入系统 类TranseferMonet(对象): 康涅狄格州def __init__(自我): 自我。康涅狄格州=康涅狄格州 def createNewUser(自我,userID,钱): 光标=self.conn.cursor () 试一试: sql='插入帐户值(% s % s)的% (str (userID) str(钱)) cursor.execute (sql) self.conn.commit () 除了例外e: self.conn.rollback () e def transferMoney(自我、transeferID recivierID,钱): 试一试: self.checkID (transeferID) self.checkID (receiverID) self.checkEnoughMoney (transferID钱) self.subMoney (transferID钱) self.addMoney (receiverID钱) self.conn.commit () 除了例外e: self.conn.rollback () e def checkID(自我,userID): 光标=self.conn.cursor () 试一试: sql='从帐户中选择userID userID=% s ' % str(标识) cursor.execute (sql) rs=cursor.fetchall () 如果len (rs) !=1: 提高异常(“ID错误!”) 最后: cursor.close () def checkEnoughMoney(自我、transferID钱): 光标=self.conn.cursor () 试一试: sql='选择钱从账户用户id=% s和金钱祝辞=% s ' % (str (transferID) str(钱)) cursor.execute (sql) rs=cursor.fetchall () 如果len (rs) !=1: 提高异常(“余额不足!”) 最后: cursor.close () def subMoney(自我、transferID钱): 光标=self.conn.cursor () 试一试: sql='更新帐户设置=钱——用户id=% s ' % s % (str(钱),str (transferID)) cursor.execute (sql) 如果游标。rowcount !=1: 提高异常(“减款失败!”) 最后: cursor.close () def addMoney(自我、receiverID钱): 光标=self.conn.cursor () 试一试: sql='更新帐户设置=钱+ % s userID=% s ' % (str(钱),str (receiverID)) cursor.execute (sql) 如果游标。rowcount !=1: 提高异常('加款失败!”) 最后: cursor.close () if __name__==癬_main__”: transferID=2002 receiverID=2001 钱=300 newID=2003 newmoney=900 康涅狄格州=MySQLdb。连接(主机=127.0.0.1,端口=3306,用户=?passwd=' 914767195 ', db=馐浴?charset=use utf8) trMoney=TranseferMonet(康涅狄格州) 试一试: trMoney.transferMoney (transferID receiverID,金钱) 除了例外e: 打印”转账错误" + str (e) 试一试: trMoney.createNewUser (newID newmoney) 除了例外e: 打印”创建用户失败!”+ str (e) 最后: conn.close ()
,以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。