基于python3.6连接mysql,实现一个银行转账的小功能(源码)
2018-01-14 21:26
876 查看
import pymysql class TransferMoney: def __init__(self,conn): self.conn = conn def check_acct_available(self,acctid): try: cursor = self.conn.cursor() 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("account %s is not exist" % acctid) finally: cursor.close() def has_enough_money(self,acctid,money): try: cursor = self.conn.cursor() 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("account %s does't have enough money" % acctid) finally: cursor.close() def reduce_money(self,acctid,money): try: cursor = self.conn.cursor() sql = "update account set money = money - %s where acctid = %s" % (money,acctid) cursor.execute(sql) print("reduce_money" + sql) rs = cursor.rowcount if rs != 1: raise Exception("account %s transfer is't successful" % acctid) finally: cursor.close() def add_money(self,acctid,money): try: cursor = self.conn.cursor() sql = "update account set money = money + %s where acctid = %s" % (money,acctid) cursor.execute(sql) print("add_money" + sql) rs = cursor.rowcount if rs != 1: raise Exception("account %s transfer is't successful" % 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 = pymysql.Connect( host = '*******', port =3306, user = 'root', passwd = '*************', db = 'python' ) source_acctid = int(input("Input source_acctid")) target_acctid = int(input("Input target_acctid")) money = int(input("Input tansfer money ")) tr_money = TransferMoney(conn) try: tr_money.transfer(source_acctid,target_acctid,money) except Exception as e: print("raise Error"+str(e)) finally: conn.close()
相关文章推荐
- 基于Python实现一个简单的银行转账操作
- 基于Python实现一个简单的银行转账操作
- Android 基于Socket的长连接实现一个实时推送的功能
- Python连接pymysql库实现简单的转账功能
- Python3连接MySQL(pymysql)模拟转账实现代码
- PHP+Mysql基于事务处理实现转账功能的方法
- PHP+Mysql基于事务处理实现转账功能的方法
- Java基于JDBC实现事务,银行转账及货物进出库功能示例
- PHP+Mysql基于事务处理实现转账功能的方法
- 用python实现银行转账功能
- jsp+servlet+mysql 实现简单的银行登录转账功能
- 40行python代码,搭建一个网站并实现用户登陆功能(附源码下载)
- python基于selenium+PhantomJS实现用提交表单,并点击按钮功能,获取返回的页面源码和ur等信息l。
- python创建一个mysql连接耗时0.06秒
- jsp连接MySQL操作GIS地图数据,实现添加point的功能
- Python:从socket开始,搭建一个最基本功能的FTP服务器(附源码)
- 自己实现的一个针对MySQL的Python 数据库组建
- 一个简单基于LRU连接检测实现
- 【分享】分享一个基于SSH实现的简单学生选课系统(附源码)
- 基于C/S的网盘设计(JAVA) - 网盘源码-实现部分功能