python-mysql实现简单功能
来源:互联网 发布:ubuntu安装emacs25 编辑:程序博客网 时间:2024/06/04 00:56
记录我在慕课上学的一段代码
# coding=utf-8import sysimport MySQLdbclass TransferMoney(object): def __init__(self, conn): self.conn = conn def check_acct_available(self, acctid): cursor = self.conn.cursor() try: sql = "select * from account where acctid=%s" % acctid cursor.execute(sql) print "check_acct_available:" + sql rs = cursor.fetchall() if len(rs) != 1: raise Exception("账户%s不存在" % acctid) finally: cursor.close() def has_enough_money(self, acctid, money): cursor = self.conn.cursor() try: sql = "select * from account where acctid=%s and money>%s" % (acctid,money) cursor.execute(sql) print "has_enough_money:" + sql rs = cursor.fetchall() if len(rs) != 1: raise Exception("账户%s没有足够的钱" % acctid) finally: cursor.close() def reduce_money(self, acctid, money): cursor = self.conn.cursor() try: sql = "update account set money=money-%s where acctid=%s" % (money,acctid) cursor.execute(sql) print "reduce_money:" + sql if cursor.rowcount != 1: raise Exception("账户%s减款失败" % acctid) finally: cursor.close() def add_money(self, acctid, money): cursor = self.conn.cursor() try: sql = "update account set money=money+%s where acctid=%s" % (money,acctid) cursor.execute(sql) print "add_money:" + sql if cursor.rowcount != 1: raise Exception("账户%s加款失败" % acctid) finally: cursor.close() def transfer(self, source_acctid, target_acctid, money): try: self.check_acct_available(source_acctid) self.check_acct_available(target_acctid) self.has_enough_money(source_acctid, money) self.reduce_money(source_acctid, money) self.add_money(target_acctid, money) self.conn.commit() except Exception as e: self.conn.rollback() raise e# 先写程序的入口if __name__ == "__main__": source_acctid = sys.argv[1] target_acctid = sys.argv[2] money = sys.argv[3]# 连接到数据库 conn = MySQLdb.connect(host="localhost",port=3306,user="root",passwd="数据库密码",db="数据库名",charset="utf8") tr_money = TransferMoney(conn) try: tr_money.transfer(source_acctid, target_acctid, money) except Exception as e: print "出现问题" + str(e) finally: conn.close()
当然要先在自己的数据库中创建一个account表,然后在表中插入相应数据
阅读全文
0 0
- python-mysql实现简单功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- python实现简单爬虫功能
- Python实现简单爬虫功能
- python实现简单爬虫功能
- 备忘录模式
- PostgreSQL Server Programming book
- Hadoop安装-单节点伪集群
- 用PyQt5+Caffe+Opencv搭建一个人脸识别登录界面
- C Code Standard
- python-mysql实现简单功能
- Linux nc命令——网络工具利器
- 创建对象初始化过程
- 二叉树
- 测试 Queue and Deque 示例
- Linux内核spin_lock与spin_lock_irq分析
- uva1585 Score
- 编码问题—自己的见解
- 51nod 1459 迷宫游戏(最短路)