mysql for python,银行转账模拟
2016-09-22 16:53
441 查看
学习中, 本人为初学者。勿喷。
#-*- coding:utf-8 -*- import MySQLdb class Tranferaccount(object): def __init__(self,sqlcon): self.sqlcon = sqlcon def account_check_avaiable(self,accid): cursor = self.sqlcon.cursor() sql_str = "select * from account where accid = %s "% accid try: print 'account_check_avaiable:%s'%sql_str cursor.execute(sql_str) rs = cursor.fetchall() if len(rs)!=1: raise Exception('此账号%s不存在'%accid) finally: cursor.close() def account_enough_money(self,accid,money): cursor = self.sqlcon.cursor() sql_str = "select * from account where accid = %s and money >%s "% (accid,money) try: print 'account_enough_money:%s'%sql_str cursor.execute(sql_str) rs = cursor.fetchall() if len(rs)!=1: raise Exception('此账号%s余额不足'%accid) finally: cursor.close() def account_reduce_money(self,accid,money): cursor = self.sqlcon.cursor() sql_str = "update account set money = money-%s where accid = %s "% (money,accid) try: print 'account_reduce_money:%s'%sql_str cursor.execute(sql_str) if cursor.rowcount != 1: raise Exception('此账号%s减款失败'%accidd) finally: cursor.close() def account_add_money(self,accid,money): cursor = self.sqlcon.cursor() sql_str = "update account set money = money+%s where accid = %s "% (money,accid) try: print 'account_add_money:%s'%sql_str cursor.execute(sql_str) if cursor.rowcount != 1: raise Exception('此账号%s加款失败'%accid) finally: cursor.close() def tranfer(self,source_accid,dest_accid,money): try: self.account_check_avaiable(source_accid) self.account_check_avaiable(dest_accid) self.account_enough_money(source_accid,money) self.account_reduce_money(source_accid,money) self.account_add_money(dest_accid,money) self.sqlcon.commit() except Exception as e: self.sqlcon.rollback() raise e if __name__ == "__main__": source_accid = 11 dest_accid = 12 money = 100 conn = MySQLdb.connect(host='127.0.0.1',user='root',db = 'liunx',passwd='root',port=3306,charset='utf8') tr_money = Tranferaccount(conn) try: tr_money.tranfer(source_accid,dest_accid,money) except Exception as e: print '出现问题:%s'% e finally: conn.close()
相关文章推荐
- Python 操作MySQL实例之银行转账模拟
- Python操作MySQL模拟银行转账
- python 简单模拟银行转账功能
- python操作MySQL 模拟简单银行转账操作
- python操作MySQL 模拟简单银行转账操作
- 实践项目七:模拟银行转账系统(python+mysql)
- python操作MySQL 模拟简单银行转账操作
- 基于Python实现一个简单的银行转账操作
- MySQL数据库事务实例(模拟银行转账)
- 慕课 python 操作数据库2 银行转账实例
- Android——简单模拟银行转账
- 初学python,模拟转账
- python-mysql超简单银行转账
- C#代码:用接口模拟实现存取款及银行之间的转账
- 【python-mysql】| 银行转账案例代码
- 基于python3.6连接mysql,实现一个银行转账的小功能(源码)
- 基于Python实现一个简单的银行转账操作
- Python3连接MySQL(pymysql)模拟转账实现代码
- 用python实现银行转账功能
- Spring通过事务实现模拟银行转账案例